文件操作

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);  //删除该空文件夹
    }
}

 

posted @ 2016-11-17 17:10  厚爱无需我多言。  阅读(144)  评论(0编辑  收藏  举报