PHP 文件处理

计算机文件或程序的目录 : directory 

1.创建和修改  文件 与文件名   注意   不能直接删除 非空的文件夹

mkdir("./24"); 创建文件夹
rmdir("./24");//只能删除空的文件夹
var_dump(filetype("./22"));判断文件类型   文件夹  输出  dir    文件  返回  file
touch("./biji.txt");   创建文件

unlink("./27/biju.txt"); 只能移除文件

var_dump(filetype("./biji.txt"));  判断文件类型   文件夹  输出  dir    文件  返回  file

2.rename  移动并重命名  两个缺一不可

rename("./23","./27");//移动并重命名文件  这里表示 移动到同一个 文件夹下  并且  重命名
rename("./kk","./27/ka");//移动并命名 只移动 不命名 不可以 (可以命名为原来的名字 kk);
copy("./biji.txt","./27/biju.txt");//只可以复制文件不能复制文件夹 同样 必须复制家命名(可以重命名)

 

3.glob   表示输出所有文件【以数组的形式返回】 这里注意 .. 和.
以下是双点和单点 在路径里面的区别

..表示上级目录   .  表示当前目录
var_dump(glob("./27/../*"));// 文件夹27的上级所有文件 重点

 

 

var_dump(glob("./27/./*"));//文件夹27下的所有文件 和 下面 效果一样
var_dump(glob("./27/*"));

 

 4.content 包含

 file_get_contents("./11.txt"); //获取文件内容
 file_get_contents("http://www.baidu.com");  也可以获取 远程文件
file_put_contents("./22.txt","dhsjkshdjksahj"); //写入内容
readfile("11.txt"); //读取文件内容并输出  
file("./11.txt")); //读取文件内容,每行放在数组里面当做一个元素

5.打开文件:

 1 $f = fopen("./11.txt","r"); //打开文件并返回文件资源
 2 fwrite($f,"hello world"); //写入内容
 3 
 4 echo fgetc($f);
 5 echo fgetc($f);
 6 echo fgetc($f); //读取文件内容,一个字符一个字符的读
 7 echo fgets($f);
 8 echo fgets($f); //读取文件内容,每次读一行
 9 echo fread($f,10); //读取文件内容,按照长度来读
10 
11 fclose($f); //关闭文件资源

 6.文件处理

echo date("Y-m-d H:i:s",fileatime("./11.txt")); //获取文件上次访问时间
echo date("Y-m-d H:i:s",filectime("./11.txt")); //文件的创建时
echo date("Y-m-d H:i:s",filemtime("./11.txt")); //文件的修改时间
echo filesize("./11.txt"); //文件大小
var_dump(file_exists("./12.txt")); //文件是否存在

7.

echo $_SERVER['DOCUMENT_ROOT']; //获取当前服务器的根->D:/wamp/www/

 

 

echo basename("./11.txt",".txt");  //获取路径中的文件名->txt

echo basename("./11.txt");  //获取路径中的文件名->11.txt

echo dirname("./22/11.txt");  //获取路径中的除去文件名的部分---->./22[注意是获取路径上的 表示该文件之前的所有文件名如果]

 

 

 

 

var_dump(pathinfo("./22/11.txt")); //获取文件信息,返回数组

 

echo realpath("./22/11.txt"); //将相对路径转换为绝对路径-->D:\wamp\www\wenjianhemulu\22\rr.txt

readdir($dir) 

使用readdir($dir) 必须 打开该文件 读取的是  该文件 内部的文件   名

$dir = opendir("./22");
var_dump(readdir($dir)); //读取文件内容并输出
closedir($dir);

$dir = opendir("./22");
var_dump(readdir($dir)); //读取文件内容并输出
var_dump(readdir($dir));
var_dump(readdir($dir));
closedir($dir);

  

 

 

例题:

递归的方法     打开文件(返回一个数组)--->关闭数组

1.获取文件夹下面所有文件的大小    【不能直接取文件夹的大小; 便利出所有文件  累加】  注意rewinddir($dir); 方法

 1 function Fsize($fname)
 2 {
 3     $size = 0;
 4     $dir = opendir($fname);
 5     
 6     //遍历目录,找到文件,累加大小
 7     while($u = readdir($dir))
 8     {
 9         if($u=="." || $u=="..")
10         {
11         }
12         else
13         {
14             $zfname = $fname."/".$u;
15             if(is_file($zfname))
16             {
17                 $size += filesize($zfname);
18             }
19         }
20     }
21     
22     //找到子目录,获取子目录下文件大小
23     rewinddir($dir);
24     while($u = readdir($dir))
25     {
26         if($u=="." || $u=="..")
27         {
28         }
29         else
30         {
31             $zfname = $fname."/".$u;
32             if(is_dir($zfname))
33             {
34                 $size += Fsize($zfname);
35             }
36         }
37     }
38     
39     closedir($dir);
40     return $size;
41 }
42 
43 echo Fsize("./0904");
获取文件夹下面 文件的大小

2.打开文件夹  后去里面所有资源

1 $fname = "./0904";
2 $dir = opendir($fname); //打开一个目录,返回目录资源
3 
4 while($url = readdir($dir))
5 {
6     echo $fname."/".$url."<br>";
7 }
8 closedir($dir); //关闭目录资源
打开文件夹获取所有资源

3.遍历目录

var_dump(glob("./touxiang/*")); //返回目录下所有的文件

$attr = glob("./touxiang/*");

foreach($attr as $v)
{
    echo $v."<br>";
}
便利目录

 4.删除文件

 1 //删除文件夹
 2 function ShanChu($fname)
 3 {
 4     //遍历该文件夹,找到所有文件删除
 5     $dir = opendir($fname);
 6     while($n = readdir($dir))
 7     {
 8         if($n!="." && $n!="..")
 9         {
10             $zname = $fname."/".$n;
11             if(is_file($zname))
12             {
13                 unlink($zname);
14             }
15             else
16             {
17                 ShanChu($zname);
18             }
19         }
20     }
21     closedir($dir);
22 
23     //删除文件夹
24     rmdir($fname);
25 }
26 
27 ShanChu("./0904");
删除文件

 

 

 

 

 

 

 

 

 

  

posted @ 2017-01-16 13:50  get("新技能")  阅读(179)  评论(0编辑  收藏  举报