PHP file函数
一、判断函数
1 is_file($filename) //判断是否文件
2 is_link($filename) //判断是否为链接符号
3 is_dir($filename) //判断是否为路径
4 is_readable($filename)//判断文件是否存在并且可读
5 is_writable($filename)//判断文件是否存在并且可写
6 is_executable($filename)//判断文件是否存在且可执行
二、增删
1 touch($filename,$m_time=time(),$v_time=time()) //创建文件,修改时间,访问时间。文件不存在则创建
2 mkdir($path,0777,true) //创建目录,true位创建多级
3 copy($source,$dest)//将文件复制到$dest
4 unlink($filename)//删除文件
5 rmdir($dirname)//删除目录
三、读写
1 $fp = fopen($filename,$mode) //打开文件或url
2 feof($fp)//测试文件指针是否到了文件结束的位置
3 flock($fp,$operation)//LOCK_SH共享锁,LOCK_EX排他锁,LOCK_UN释放锁。
4 fwrite($fp,$content)//写入,别名fputs()
5 fread($fp,$length)//读取$length个字节
6 fgets($fp,$length)//从文件指针中读取一行,$length-1个字节
7 fgetss($fp)//从文件指针中读取一行并过滤掉HTML标记
8 fgetc($fp)//读取一个字符(字节)
9 fclose($fp);//关闭一个已打开的文件指针
10 $str = file_get_contents($filename,)//将整个文件读入一个字符串
11 file_put_contents($filename,$contents)//将一个字符串写入文件
12 $arr = file($filename)//将整个文件读入一个数组
四、指针
1 fseek($fp,$offset)//将文件指针移动到$offset处
2 rewind($fp)//将文件指针置于开头,等价于fseek($fp,0)
五、文件信息
1 fileatime($filename)//取得文件上次的访问时间
2 filemtime($filename)//取得文件的修改时间
3 filectime($filename)//取得文件的 inode 修改时间
4 fileinode($filename)//取的文件的 inode
5 filegroup($fileanme)//取得文件的组
6 fileowner($filename)//取得文件的所有者
7 fileperms($fileanme)//取得文件的权限
8 filesize($filename) //取得文件的大小
9 filetype($filename) //取得文件类型,fifo,char,dir,block,link,file 和 unknown
六、权限
1 chgrp($filename,$group)//$group组名或组ID
2 chmod($filename,$mode)//改文件权限
3 chown($filename,$user)//改变文件的所有者
七、解析路径
1 basename($path)//返回路径中的文件名部分
2 echo "1) ".basename("/etc/sudoers.d", ".d").PHP_EOL;
3 echo "2) ".basename("/etc/passwd").PHP_EOL;
4 echo "3) ".basename("/etc/").PHP_EOL;
5 echo "4) ".basename("/etc///").PHP_EOL;
6 echo "5) ".basename("//etc/").PHP_EOL;
7 echo "6) ".basename("/etc/.").PHP_EOL;
8 echo "7) ".basename(".").PHP_EOL;
9 echo "8) ".basename("..").PHP_EOL;
10 echo "9) ".basename("/");
11 1) sudoers
12 2) passwd
13 3) etc
14 4) etc
15 5) etc
16 6) .
17 7) .
18 8) ..
19 9)
20 下面这个自定义函数可以解释basename()的行为
21 function my_basename($path,$suffix=''){
22 $path_arr = explode("/",$path);
23 foreach ($path_arr as $key => $value) {
24 if($value==''){
25 unset($arr[$key]);
26 }
27 }
28 $arr_length = count($path_arr);
29 $path_last = $path_arr[$arr_length-1];
30 if(isset($path_last)){
31 $filename = strrev($path_last);
32 if(strpos($filename,$suffix)===0){
33 return strrev(substr($filename,strlen($suffix)));
34 }else{
35 return strrev($filename);
36 }
37 }else{
38 return '';
39 }
40 }
41
42 pathinfo($filename)//返回文件路径的信息
43 print_r(pathinfo("/etc///ss/s..txt//"));
44
45 输出:
46
47 Array
48 (
49 [dirname] => /etc///ss
50 [basename] => s..txt
51 [extension] => txt
52 [filename] => s.
53 )