【php】目录操作 文件操作



[php]  view plain  copy
 print ?
  1.     php的目录处理函数主要包括如下几个:  
  2.     ①mkdir():创建目录  
  3.     ②is_dir():判断给定文件名是否是一个目录  
  4.     ③rmdir():删除目录  
  5.     ④basename():返回路径中的文件  
  6.     ⑤dirname():返回路径中的目录  
  7.   
  8. (1)mkdir() 函数用于创建一个目录,成功返回 true,否则返回 false  
  9.     语法:  
  10.         bool mkdir( string dirname [, int mode ] )  
  11.     注意:  
  12.         可选参数 mode 表示创建该目录时给定的权限,默认是最大权限 0777   
  13. 案例:   
  14.     <?php  
  15.     $dirname = 'testdir';  
  16.     if (mkdir($dirname, 0700)) {  
  17.             echo "目录 $dirname 创建成功";  
  18.     } else {  
  19.             echo "目录 $dirname 创建失败";  
  20.     }  
  21.     ?>  
  22.   
  23.   
  24. (2)is_dir() 函数用于检查给定文件名是否是一个目录,成功返回 true,否则返回 false  
  25.     语法:  
  26.         bool is_dir( string filename )  
  27. 案例:   
  28.     <?php  
  29.     var_dump(is_dir'images' ));   //输出:bool(true)  
  30.     ?>  
  31.   
  32.   
  33. (3)rmdir() 函数用于删除一个目录,成功返回 true,否则返回 false  
  34.     语法:  
  35.         bool rmdir( string dirname )  
  36. 案例:   
  37.     <?php  
  38.     $dirname = 'testdir';  
  39.     if (rmdir$dirname )) {  
  40.             echo "目录 $dirname 删除成功";  
  41.     } else {  
  42.             echo "目录 $dirname 删除失败";  
  43.     }  
  44.     ?>  
  45.   
  46.   
  47. (4)basename() 函数用于返回一个包含全路径的字符串中的基本文件名,成功返回字符串,否则返回 false  
  48.     语法:  
  49.         string basename( string path [, string suffix] )   
  50.     注意:  
  51.         可选参数 suffix 表示文件后缀,如果文件名后缀是 suffix ,那这一部分也会被去掉  
  52. 案例: 假定本地访问该文件 URL 地址为:http://127.0.0.1/html/test.php   
  53.   
  54.     <?php  
  55.     echo $PHP_SELF;         //输出:/html/test.php  
  56.     echo basename$PHP_SELF );     //输出:test.php  
  57.     echo basename$PHP_SELF'.php');  //输出:test  
  58.     ?>  
  59.   
  60. (5)dirname() 函数用于返回一个包含全路径的字符串中去掉文件名的目录,成功返回字符串,否则返回 false。  
  61.     语法:  
  62.         string dirname( string path )   
  63. 案例:   
  64.     假定本地访问该文件 URL 地址为:http://127.0.0.1/html/test.php   
  65.       
  66.     <?php  
  67.     echo $PHP_SELF;     //输出 /html/test.php  
  68.     echo dirname( $PHP_SELF );  //输出 /html  
  69.     ?>  


[php]  view plain  copy
 print ?
  1.     php提供了丰富的文件处理函数  
  2. 文件处理主要包括:  
  3.     ①文件的创建/打开  
  4.     ②文件的写入  
  5.     ③文件读取  
  6.     ④检查文件是否存在  
  7.     ⑤文件的拷贝与删除  
  8.     ⑥获取文件的大小、类型及修改时间  
  9.   
  10.     fopen()函数的使用:  
  11.   
  12. fopen()函数主要用来打开一个文件或url地址  
  13.     语法:  
  14.         resource fopen(string filename,mode);  
  15.         ①参数filename:尝试打开或创建的文件名  
  16.         ②参数mode:打开模式  
  17.     注意:  
  18.     1.php中没有单独的文件创建函数,创建或打开文件都是使用fopen()函数  
  19.     2.当使用fopen()函数打开一个文件时,如果文件不存在,则会尝试创建该文件,并返回一个资源;如果打开失败,返回false  
  20.   
  21.       
  22. 案例1,使用fopen()函数创建一个文件:  
  23.   
  24.     <?php  
  25.     if(!file_exists("test.txt")){//如果文件不存在(当前目录下)  
  26.         $fh=fopen("test.txt","w");//以只写模式创建一个test.txt文件  
  27.         fclose($fh);//关闭文件  
  28.     }  
  29.     ?>  
  30.   
  31. 案例2,使用fopen()函数打开url地址  
  32.   
  33.     <?php  
  34.     $fh=fopen("http://www.baidu.com","r");  
  35.     if($fh){  
  36.         while(!feof($fh)){  
  37.             echo fgets($fh);  
  38.         }  
  39.     }  
  40.     ?>  
  41.   
  42.     注意:fopen()返回的只是一个资源,要想显示打开的页面地址,还需要使用fgets()函数读取,并使用echo输出  
  43.   
  44.     fwrite()函数的使用:  
  45.   
  46. fwrite()函数主要用来向文件写入字符串,如果写入成功,则返回写入的字符数,否则返回false  
  47.     格式:  
  48.         int fwrite(resource handle,string data,int length)  
  49.       
  50.     注意:fwrite()函数将data的内容写入文件指针handle处  
  51.   
  52.       
  53.       
  54.     注意:如果指定了可选参数length,当写入了length个字节或者写完了data以后,写入就会停止  
  55.       
  56.   
  57.   
  58. 案例1,写入文件:  
  59.   
  60.     <?php  
  61.     $filename="file.txt";//要写入的文件名称  
  62.     $content="你好!";//要写入的内容  
  63.     $fh=fopen($filename,"w");//打开文件  
  64.     $num=fwrite($fh,$content);//将内容写入文件中,返回写入的字符数  
  65.     //$num=fwrite($fh,$content,4);//只能将四个字符写入到file.txt文件中  
  66.     echo $num;//输出结果为:6  
  67.     fclose($fh);//关闭文件  
  68.     ?>  
  69.   
  70. 案例2,追加写入:  
  71.   
  72.     <?php  
  73.     $filename="file.txt";  
  74.     $content="你好!";  
  75.     $fh=fopen($filename,"a");  
  76.     echo fwrite($fh,$content);  
  77.     fclose($fh);//关闭文件  
  78.     ?>  
  79.   
  80.     file_put_contents()函数的使用:  
  81.   
  82. file_put_content():此函数主要用于一次性将字符串写入文件或追加字符串到文件,如果成功,返回写入到文件的字符数,失败的话返回false  
  83.       
  84.     语法:  
  85.          int file_put_content(string filename,string data,int flags,resource context);  
  86.   
  87.   
  88.   
  89. 案例1,写入文件:  
  90.   
  91.     <?php  
  92.     echo file_put_contents("file.txt","你好");//浏览器输出结果为:4  
  93.     ?>  
  94.   
  95.     注意:  
  96.     1.如果文件不存在,则创建文件,相当于fopen()函数行为  
  97.     2.如果文件存在,默认将清空文件内的内容,可设置 flags 参数值为 FILE_APPEND 以避免  
  98.   
  99. 案例2,追加写入:  
  100.       
  101.     <?php  
  102.     file_put_contents("file.txt","你好",FILE_APPEND);//追加内容到文件尾部  
  103.     ?>  
  104.   
  105.     文件的读取函数:  
  106.   
  107. 文件的读取函数主要有如下几种:  
  108.     ①fread():从文件中读取数据  
  109.     ②fgets():从文件中读取一行数据,并将文件指针指向下一行  
  110.     ③fgetc():逐字读取文件数据,直到文件结束  
  111.     ④file():把整个文件内容读取到一个数组中,数组中的每个元素都是文件中对应的一行  
  112.     ⑤file_get_contents():将整个文件内容读入到一个字符串  
  113.   
  114. fread():此函数用于读取文件  
  115.   
  116.     语法:  
  117.   
  118.     string fread(int handle,int length);  
  119.   
  120.     注意:  
  121.         fread()函数从文件指针handle读取最多length个字节。当遇到下列情况时,会停止读取文件  
  122.         ①在读取完最多length个字节数时  
  123.         ②达到文件末尾的时候(eof)  
  124.   
  125. 案例:从文件中读取10个字节  
  126.     <?php  
  127.     $filename = "test.txt";  
  128.     $fh = fopen($filename"r");  
  129.     echo fread($fh"10");  
  130.     fclose($fh);  
  131.     ?>  
  132.   
  133.   
  134. fgets():此函数主要用来从文件中读取一行数据,并将文件指针指向下一行  
  135.   
  136.     语法:  
  137.   
  138.     string fgets(int handle,int length)  
  139.   
  140.     注意:  
  141.     ①fgets() 从 handle 指向的文件中读取一行并返回长度最多为 length-1 字节的字符串  
  142.     ②碰到换行符(包括在返回值中)、EOF 或者已经读取了 length-1 字节后停止  
  143.     ③如果没有指定 length ,则默认为 1K ,或者说 1024 字节  
  144. 案例:  
  145.     <?php  
  146.     $fh = @fopen("test.txt","r"or die("打开 test.txt 文件出错!");  
  147.     // if条件避免无效指针  
  148.     if($fh){  
  149.             while(!feof($fh)) {  
  150.                 echo fgets($fh), '<br />';  
  151.             }  
  152.     }  
  153.     fclose($fh);  
  154.     ?>  
  155. feof() 函数测试文件指针是否到了文件结束的位置,该文件指针必须有效,如果是无效的资源,则会陷入无限循环中  
  156.   
  157. fgetc():此函数主要用于逐字读取文件数据,直到文件结束  
  158.   
  159.     语法:  
  160.   
  161.     string fgetc(resource handle);  
  162.   
  163. 案例:从文件中读取10个字节  
  164.     <?php  
  165.     $fh = @fopen("test.txt","r"or die("打开 test.txt 文件出错!");  
  166.     if($fh){  
  167.             while(!feof($fh)) {  
  168.              echo fgetc($fh);  
  169.             }  
  170.     }  
  171.     fclose($fh);  
  172.     ?>  
  173.   
  174.   
  175.   
  176.   
  177.   
  178. file():此函数主要用于把整个文件读取到一个数组中,数组中的每个单元都是文件中相应的一行,成功,返回一个数组;失败返回false  
  179.   
  180.     语法:  
  181.   
  182.     array file(string filename);  
  183.   
  184. 案例:从文件中读取10个字节  
  185.     <?php  
  186.     $lines = file('test.txt');  
  187.     // 在数组中循环并加上行号  
  188.     foreach ($lines as $line_num => $line) {  
  189.             echo "Line #{$line_num} : ",$line,'<br />';  
  190.     }  
  191.     ?>  
  192.   
  193. test.txt 文件内容:   
  194.   
  195. 你好!  
  196. 这是第二行文字。  
  197.   
  198. 浏览器显示:   
  199.   
  200. Line #0 : 你好!   
  201. Line #1 : 这是第二行文字。  
  202.   
  203.   
  204. file_get_contents():此函数主要用于将整个文件读入到一个字符串,成功,则返回一个字符串;失败则返回false  
  205.   
  206.     语法:  
  207.   
  208.     string file_get_contents(string filename,int offset,int maxlen);  
  209.   
  210.   
  211. 案例:  
  212.     <?php  
  213.     // 读取时同事将换行符转换成 <br />  
  214.     echo nl2br(file_get_contents('test.txt'));  
  215.     ?>  
  216.   
  217. file_exists():此函数主要用来检查一个文件或目录是否存在  
  218.   
  219.     语法:  
  220.   
  221.     bool file_exists(string filename);  
  222.   
  223. 案例:  
  224.     <?php  
  225.     $filename = 'test.txt';  
  226.     if (file_exists($filename)) {  
  227.             echo "文件 $filename 存在";  
  228.     } else {  
  229.             echo "文件 $filename 不存在";  
  230.     }  
  231.     ?>  
  232.   
  233.   
  234. copy():此函数主要用来拷贝文件  
  235.           
  236.         成功返回true,失败返回false  
  237.   
  238.     语法:  
  239.   
  240.     bool copy(string file,string newfile);  
  241.   
  242. 案例:  
  243.     <?php  
  244.     if (copy('test.txt''test.txt.bak')) {  
  245.             echo "文件拷贝成功";  
  246.     } else {  
  247.             echo "文件拷贝失败";  
  248.     }  
  249.     ?>  
  250.   
  251.   
  252. unlink():此函数主要用来删除文件  
  253.           
  254.         成功返回true,失败返回false  
  255.   
  256.     语法:  
  257.   
  258.     bool unlink(string filename);  
  259.   
  260. 案例:  
  261.     <?php  
  262.     unlink("test.txt");   
  263.     ?>  
  264.   
  265.   
  266. 获取文件信息的函数主要有如下几种:  
  267.   
  268.     ①filesize():取得文件大小,成功则返回文件大小的字节数,失败返回false  
  269.   
  270.     ②filetype():取得文件的类型,成功则返回文件的类型,可能的值有file、dir、char、block、link等  
  271.   
  272.     ③filemtime():取得文件的修改时间,成功则返回文件上次被修改的时间戳  
  273.   
  274.   
  275.   
  276.   
  277.     问题?  
  278.   
  279.     如何锁定文件:在向一个文本文件中写入数据时,需要先锁定文件,以防其它用户同时也修改此文件内容,如何锁定文件呢?  
  280.       
  281.     php中通过flock()函数实现文件锁定,语法如下:  
  282.       
  283.     bool flock(int handle,int operation);  
  284.       
  285.     参数1:是一个已经打开的文件指针  
  286.       
  287.     参数2:控制锁定权限,有四个可选值:  
  288.       
  289.     LOCK_SH:取得共享锁定(读取程序)  
  290.     LOCK_EX:取得独占锁定(写入程序)  
  291.     LOCK_UN:释放锁定  
  292.     LOCK_NB:防止iflock()在锁定时堵塞  


 

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值