PHP操作文件类实例代码_PHP教程
教程Tag:暂无Tag,欢迎添加,赚取U币!
推荐:PHP上传自动生成缩略图及水印类(含代码)思路很大一部分是原创的,但也有一些是COPY网络的,写得不够规范,还请各位大大不要见笑,同时给小弟些意见。 开始第一步: 创建文件夹,布局: annex:附件(该目录下存放上传的原图片) |— smallimg:存放缩略图片 |— mark:存放水印图片 include:存放
发一个刚写完的文件操作类第一次写类,写的不好,大家多提意见,不过不要骂我
刚才又加了两个功能,又加了注释,高手一定帮我看看哪有问题啊,谢谢
file.class.php
刚才又加了两个功能,又加了注释,高手一定帮我看看哪有问题啊,谢谢
file.class.php
- <?php
- /**
- *本类为文件操作类,实现了文件的建立,写入,删除,修改,复制,移动,创建目录,删除目录
- * 列出目录里的文件等功能,路径后面别忘了加"/"
- *
- * @author 路人郝
- * @copyright myself
- * @link [url=http://www.phpr.cn]www.phpr.cn[/url]
- *
- */
- class fileoperate
- {
- var path;// 文件路径
- var name;//文件名
- var result;//对文件操作后的结果
- /**
- * 本方法用来在path目录下创建name文件
- *
- * @param string path
- * @param string name
- */
- function creat_file(path,name)//建立文件
- {
- filename=path.name;
- if (file_exists(filename))
- {
- echo "文件已经存在,请换个文件名";
- }
- else
- {
- if (file_exists(path))
- {
- touch(name);
- rename(name,filename);
- echo "文件建立成功 </br>";
- }
- else{
- echo "目录不存在,请检查";
- }
- }
- }
- /**
- * 本方法用来写文件,向path路径下name文件写入content内容,bool为写入选项,值为1时
- * 接着文件原内容下继续写入,值为2时写入后的文件只有本次content内容
- *
- * @param string_type path
- * @param string_type name
- * @param string_type content
- * @param bool_type bool
- */
- function write_file(path,name,content,bool) //写文件
- {
- filename=path.name;
- if (bool==1) {
- if (is_writable(filename)) {
- handle=fopen(filename,'a');
- if (!handle) {
- echo "文件不能打开或文件不存在";
- exit;
- }
- result=fwrite(handle,content);
- if (!result) {
- echo "文件写入失败";
- }
- echo "文件写入成功";
- fclose(handle);
- }
- else echo "文件不存在";
- }
- if (bool==2) {
- if (!file_exists(filename)) {
- this->creat_file(path,name);
- handle=fopen(filename,'a');
- if (fwrite(handle,content));
- echo "文件写入成功";
- }
- else {
- unlink(filename);
- this->creat_file(path,name);
- this->write_file(path,name,content,1);
- echo "文件修改成功";
- }
- }
- }
- /**
- * 本方法删除path路径下name文件
- *
- * @param string_type path
- * @param string_type name
- */
- function del_file(path,name){ //删除文件
- filename=path.name;
- if (!file_exists(filename)) {
- echo "文件不存在,请确认路径是否正确";
- }
- else {
- if (unlink(filename)){
- echo "文件删除成功";
- }
- else echo "文件删除失败";
- }
- }
- /**
- * 本方法用来修改path目录里name文件中的内容(可视)
- *
- * @param string_type path
- * @param string_type name
- */
- function modi_file(path,name){ //文件修改
- filename=path.name;
- handle=fopen(filename,'r+');
- content=file_get_contents(filename);
- echo "<form id='form1' name='form1' action='modi_file.php' method='post'>";
- echo "<textarea name=content rows='10'>content</textarea>文件内容";
- echo "<p>";
- echo "<input type='text' name='filename' value=filename />文件路径<p>";
- echo "<input name=ss type=submit value=修改文件内容 />";
- echo "</form>";
- }
- /**
- * 本方法用来复制name文件从spath到dpath
- *
- * @param string name
- * @param string spath
- * @param string dpath
- */
- function copy_file(name,spath,dpath) //文件复制
- {
- filename=spath.name;
- if (file_exists(filename)) {
- handle=fopen(filename,'a');
- copy(filename,dpath.name);
- if (file_exists(dpath.name))
- echo "文件复制成功";
- else echo "文件复制失败";
- }
- else echo "文件不存在";
- }
- /**
- * 本方法把name文件从spath移动到path路径
- *
- * @param string_type path
- * @param string_type dirname
- * @param string_type dpath
- */
- function move_file(name,spath,dpath) //移动文件
- {
- filename=spath.name;
- if (file_exists(filename)) {
- result=rename(filename,dpath.name);
- if (result==false or !file_exists(dpath))
- echo "文件移动失败或目的目录不存在";
- else
- echo "文件移动成功";
- }
- else {
- echo "文件不存在,无法移动";
- }
- }
- /**
- * 本方法把filename文件重命名为newname文件
- *
- * @param string_type filename
- * @param string_type newname
- */
- function rename_file(filename,newname) { //文件或目录更名
- path=pathinfo(filename);
- dir=path['dirname']; //得到文件路径
- newfilename=dir.newname;
- if (file_exists(filename)) { //判断文件是否存在
- result=rename(filename,newfilename);
- if (result==true)
- echo "文件更名成功";
- else
- echo "文件更名失败";
- }
- else
- echo "文件不存在";
- }
- /**
- * 本方法用来列出目录里的文件或目录switch为1时按字母顺序列出所有目录和文件
- * switch为2则只列出目录,switch为3时,只列出文件名
- *
- * @param string_type path
- * @param int_type switch
- */
- function list_filename(path,switch) //列出文件和目录名
- {
- if (file_exists(path)) {
- dir=scandir(path);
- if (switch==1){ //如果switch为1则按字母顺序列出所有目录和文件
- for (i=0;i<=count(dir);i++)
- {
- if (dir[i]!="." and dir[i]!="..")
- {
- echo "dir[i]<br>";
- }
- }
- }
- if (switch==2) //switch为2则只列出目录
- {
- for (i=0;i<=count(dir);i++)
- {
- x=is_dir(path.dir[i]);
- if (dir[i]!="." and dir[i]!=".." and x==true)
- {
- echo "dir[i]<br>";
- }
- }
- }
- if (switch==3) //switch为3时,只列出文件名
- {
- for (i=0;i<=count(dir);i++)
- {
- x=is_dir(path.dir[i]);
- if (dir[i]!="." and dir[i]!=".." and x==false)
- {
- echo "dir[i]<br>";
- }
- }
- }
- }
- }
- /**
- * 本方法在path目录下创建名为dirname的目录
- *
- * @param string_type path
- * @param string_type dirname
- */
- function creat_dir(path,dirname){ //创建目录
- if (file_exists(path)) {
- result=mkdir(path.dirname);
- if (result)
- echo "目录建立成功";
- else
- echo "目录建立失败";
- }
- else
- echo "路径不存在,请重新输入";
- }
- /**
- * 本方法删除pathname目录,包括该目录下所有的文件及子目录
- *
- * @param string_type pathname
- */
- function del_dir(pathname){ //删除目录及目录里所有的文件夹和文件
- if (!is_dir(pathname))
- {exit("你输入的不是一个目录,请检查") ;}
- handle=opendir(pathname);
- while ((fileordir=readdir(handle)) !== false) {
- if (fileordir!="." && fileordir!="..") {
- is_dir("pathname/fileordir")?
- this->del_dir("pathname/fileordir"):
- unlink("pathname/fileordir");
- }
- }
- if (readdir(handle) == false)
- {
- closedir(handle);
- rmdir(pathname);
- }
- }
- }
- ?>
modi_file.php
- <?php
- include('file.class.php');
- content=_POST['content'];//得到文件内容
- //echo content;//
- filename=_POST['filename'];
- path=pathinfo(filename); //得到文件路径
- dir=path['dirname']."/"; //目录名
- name=path['basename']; //文件名
- op=new fileoperate();
- op->write_file("dir","name",content,2);
- ?>
test.php
- <?php
- include('file.class.php');
- op=new fileoperate();
- //op->creat_file("./","aa3.txt");
- //op->del_file("./","aa3.txt");
- //b="fdfdsfdsfdsfdfdfdfdfdsfdsf1233456";
- //op->write_file("./","aa3.txt",b,1);
- //op->modi_file("./","aa3.txt");
- //op->copy_file("aa3.txt","./","../a/");
- //op->move_file("aa3.txt","../","./");
- //op->rename_file("aa3.txt","aa2.txt");
- //op->list_filename("../",3);
- //op->creat_dir("/wwwroot","wesley");
- //op->del_dir("/aaa/test");?>
分享:PHP技术:txtSQL安装手册中文版txtsql的最大优点之一是文档很详细,可惜,我在网上找了半天也找不到中文版的文档,所以只好自己动手,利人利已吧,不过自己的E文水平自己是很清楚的,希望大家看了不会笑掉大牙才好,还希望大家多多指教。 欢迎使用txtSQL 2.2快速安装手册。这页将指引你如何
相关PHP教程:
- 相关链接:
- 教程说明:
PHP教程-PHP操作文件类实例代码。