文件操作
PHP中的根与网页中的跟(/)区别:
PHP中根(/)代表磁盘目录;
网页中的根(/)代表www目录
1.文件:文件和文件夹
<?php 1.判断文件 var_dump(filetype("./aa")); //若果是文件夹返回dir,如果是文件则返回file var_dump(is_dir("./aa")); //判断是不是文件夹。true 、false echo date("Y-m-d H:i:s",fileatime("./aa.txt")); //输出格式化的时间戳 echo filesize("aa.txt");<br /> //获取文件大小 var_dump(file_exists("./aaa.txt")); //判断文件是否存在
2.文件路径:
echo $_SERVER['DOCUMENT_ROOT']; //取到的是www位置(根从哪开始) echo basename("/wamp/www/11.php",".php"); //返回的是文件名(获取名字不要后缀) echo dirname("/wamp/www/11.php"); //获取目录 var_dump(pathinfo("/wamp/www/11.php")); //返回数组 echo realpath("./aa.txt"); //把相对路径转化成绝对路径
3.目录操作:
mkdir(路径以及要创建的文件名) //创建 rmdir("./bb"); //删除,只能删除空文件夹 rename("./cc","./aa/dd"); //移动文件夹 var_dump(glob("./fenye/*.php")); //返回该目录下所有的php文件,相当于windows里面的搜索
$dir = opendir("./fenye");
//打开目录资源
echo readdir();
//读取内容
closedir($dir);
//关闭目录资源
遍历目录:
var_dump(glob("./zufang/*"));//遍历租房文件夹下所有的文件,相当于未按里面的额搜索。 var_dump(glob("./zufang/*.php"));//遍历文件格式为php的文件 $dir = opendir("./zufang");//打开目录资源,打开以后一定要记得关闭。 echo readdir();//返回. .代表当前目录 echo readdir();//返回.. ..代表上级目录 echo readdir();//返回第一个文件 echo readdir();//返回第二个文件 while($f = readdir($dir)) //遍历出所有的文件,文件夹也可以读取。 { echo $f; }
例题:给一个文件夹,读取文件夹里面文件的数量
echo ShuLiang("./zufang"); function ShuLiang($filename) { $sum = 0; $dir = opendir($filename); while($f = readdir($dir)) { if($f=="." || $f=="..")//如果遍历出的是.或者..,什么也不执行. { } else { $lujing = $filename."/".$f; if(is_file($lujing)) { $sum++; } else { $sum = $sum+ShuLiang($lujing); } } } closedir($dir); return $sum; }
文件操作:
(1)文件整体操作 touch("./cc.txt");//创建文件 copy("./cc.txt","./aa/cc.txt");//赋值文件,第一个参数是要复制的文件,第二个是把文件复制到哪里。 unlink("./cc.txt");//删除文件 echo file_get_contents("./aa.txt");//读取文件内容只能读取txt、html、php等,word、wxcle文档不能读取。 echo file_get_contents("http://www.baidu.com");//这个方法比较重要,可以从网上抓取数据,用正则表达式匹配。 file_put_contents("./aa.txt","hello");//往文件里写内容,写的内容会覆盖原来的内容。 file_put_contents("./ceshi.php","hello");//修改往网页里面的内容 readfile("http://www.baidu.com");//获取并且输出,前面没有写输出。 file_get_contents需要写输出echo。 var_dump(file("http://www.baidu.com"));//把网页的代码一行一行的显示出来。 $f = fopen("./aa.txt","r");//第一个参数是打开的文件,第二个是打开的方式,方式具体可以查看php手册。 echo fgetc($f);//aa.txt的内容是hello。这里返回的是h echo fgetc($f);//返回e echo fgetc($f);//返回l ...fgetc()是一次读一个 echo fgets($f); //一次读一行 echo fread($f,2); //读取的长度,这里是读取2个长度,返回he。 fclose($f);//文件打开以后一定要关上,如果不关是不能进行别的操作的。 $f = fopen("./aa.txt","a"); //a方式是追加 fwrite($f,"world"); //把world写在hello后面 fclose($f); 给一个文件夹,删除该文件夹 ShanChu("./zufang"); function ShanChu($filename) { if(is_dir($filename)) //判断是文件 { $dir = opendir($filename); //打开文件夹 while($f = readdir($dir)) //遍历出文件夹里所有的内容 { if($d=="." || $d=="..") //去掉.和.. { } else //操作不是.和..的内容 { $fname = $filename."/".$f; //找到遍历出的内容,拼出来的格式类似wamp/zufang if(is_file($fname)) //如果是文件 { unlink($fname); } else //如果是文件夹 { ShanChu($fname); //再调用ShanChu方法,删除的文件夹变了。 } } } closedir($dir); //关闭文件夹 rmdir($filename); //把文件夹里的内容都删除以后,删除文件夹 } else //如果是空文件夹 { unlink($filename); //删除该空文件夹 } }