首页 > 代码库 > php部分--文件操作

php部分--文件操作

php中的文件指的是文件和文件夹,不是单指文件。1.判断文件(判断是文件还是文件夹)找文件,输出结果为file,代表的是文件。
var_dump(filetype("./aa.txt"));
找文件夹,输出的是dir,代表的是目录。
var_dump(filetype("./aa"));
判断是不是文件,返回的是true
var_dump(is_file("./aa.txt"));
判断是不是文件夹,返回的是true

var_dump(is_dir("./aa"));
2.文件属性
获取当前服务器的根www
echo $_SERVER[‘DOCUMENT_ROOT‘]; 
获取文件上次访问时间,返回的是时间戳。
echo date(fileatime("./aa.txt"));
把时间戳转化为时间。
echo date("Y-m-d h:i:s",fileatime("./aa.txt"))
获取文件创建时间
echo date("Y-m-d h:i:s",filectime("./aa.txt"));
获取文件修改时间
echo date("Y-m-d h:i:s",filemtime("./aa.txt"));//
返回文件的大小,单位是字节b。
echo filesize("aa.txt");
判断文件是否存在,存在返回true,不存在返回flase。
var_dump(file_exists("aa.txt"));
3.文件路径./代表当前路径 ../代表上级路径在页面指文档根,在php里面的根代表是磁盘目录,网页里面/也是代表根,是www目录。返回D:/wamp/www/,取的是服务器的根。
echo $_SERVER[‘DOCUMENT_ROOT‘];
返回index.php,返回的是文件名。
echo basename("/wamp/www/index.php");
返回index,返回的只是文件名。
echo basename("/wamp/www/index.php",".php");
返回/wamp/www,只是获取目录。
echo dirname("/wamp/www/index.php");
返回数组,里面是文件存在的目录、文件名、文件格式等信息。
var_dump(pathinfo("/wamp/www/index.php"));
返回D:\wamp\www\wenjiancaozuo\aa.txt,把相对路径转化为绝对路径。
echo realpath("./aa.txt");
4.目录操作创建目录
mkdir("./bb");
删除目录,只能删除空文件夹。文件夹里有内容是不能删除的,会报错。
rmdir("bb");
移动文件夹,实际上是把文件重新命名位置。
rename("./cc","./aa/cc");
移动的同时可以更改文件名。
rename("./cc","./aa/dd");
5.遍历目录**遍历租房文件夹下所有的文件,相当于未按里面的额搜索。
var_dump(glob("./zufang/*"));
遍历文件格式为php的文件
var_dump(glob("./zufang/*.php"));
打开目录资源,打开以后一定要记得关闭。
$dir = opendir("./zufang");
返回.  .代表当前目录
echo readdir();
返回..  ..代表上级目录
echo readdir();
返回第一个文件
echo readdir();
返回第二个文件
echo readdir();
//遍历出所有的文件,文件夹也可以读取。
 while($f = readdir($dir)) {    echo $f;}
关闭目录资源
closedir($dir);//
例题1:方法1:给一个文件夹,读取文件夹里面文件的数量
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:方法2:该方法用来获取指定文件夹下文件的数量

function ShuLiang($filename){$attr = glob($filename."/*");$n = count($attr);foreach($attr as $v){if(is_dir($v)){$n = $n+ShuLiang($v);}}    return $n;}echo ShuLiang("./0904");

例题2:获取某一个目录下所有文件的大小

function Fsize($fname){$size = 0;$dir = opendir($fname);//遍历目录,找到文件,累加大小while($u = readdir($dir)){if($u=="." || $u==".."){}else{$zfname = $fname."/".$u;if(is_file($zfname)){$size += filesize($zfname);}}}//找到子目录,获取子目录下文件大小rewinddir($dir);while($u = readdir($dir)){if($u=="." || $u==".."){}else{$zfname = $fname."/".$u;if(is_dir($zfname)){$size += Fsize($zfname);}}}closedir($dir);return $size;}echo Fsize("./0904");

 

6.文件操作(1)文件整体操作创建文件
touch("./cc.txt");
赋值文件,第一个参数是要复制的文件,第二个是把文件复制到哪里。
copy("./cc.txt","./aa/cc.txt");//
删除文件
unlink("./cc.txt");//
读取文件内容只能读取txt、html、php等,word、wxcle文档不能读取。
echo file_get_contents("./aa.txt");//
这个方法比较重要,可以从网上抓取数据,用正则表达式匹配。
echo file_get_contents("http://www.baidu.com");//
往文件里写内容,写的内容会覆盖原来的内容。
file_put_contents("./aa.txt","hello");//
修改往网页里面的内容
file_put_contents("./ceshi.php","hello");//
获取并且输出,前面没有写输出。 file_get_contents需要写输出echo。
readfile("http://www.baidu.com");//
把网页的代码一行一行的显示出来。
var_dump(file("http://www.baidu.com"));//
第一个参数是打开的文件,第二个是打开的方式,方式具体可以查看php手册。
$f = fopen("./aa.txt","r");//
aa.txt的内容是hello。这里返回的是h
echo fgetc($f);//
返回e
echo fgetc($f);//
返回l
echo fgetc($f);//
....fgetc()是一次读一个一次读一行
echo fgets($f);
读取的长度,这里是读取2个长度,返回he。
 echo fread($f,2);
文件打开以后一定要关上,如果不关是不能进行别的操作的。*/
 fclose($f);
a方式是追加
$f = fopen("./aa.txt","a");
把world写在hello后面
 fwrite($f,"world");
 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);//删除该空文件夹     } }

 

php部分--文件操作