当前位置: 代码迷 >> 计算机图书 >> 其次讲文件操作函数(第139讲)
  详细解决方案

其次讲文件操作函数(第139讲)

热度:95   发布时间:2016-04-29 11:18:12.0
第二讲文件操作函数(第139讲)

一:file_get_contents(filename) 和 file_put_contents(filename, data)

 1 <?php 2 /** 3 file_get_contents(filename)  可以获取一个文件的内容或一个网络资源的内容 4 该函数是读取文件/网络资源比较快捷方式,它封装了打开/关闭等操作     5 注意:该函数会把文件中的内容一次性全部读出,然后放到内存中,因此,过大的文件慎重用该函数打开 6 */ 7 //当前目录下的a.txt文件 8 $file = "./a.txt"; 9 //打开a.txt文件10 $str =  file_get_contents($file);11 echo $str;12 //读取网络资源13 $url = 'http://www.baidu.com';14 echo file_get_contents($url);15 /**16 file_put_contents(filename, data)  该函数用来把内容写入到文件17 该函数也封装了打开/关闭细节操作    18 */19 //将a.txt文件中的内容写入到当前目录下的b.txt文件中20 file_put_contents('./b.txt', $str)21 ?>

二:fopen(filename, mode)   fwrite(handle, string)   fclose(handle)

 1 <?php 2 /** 3 fopen(filename, mode) 打开一个文件,返回一个句柄资源 4 第一个参数是文件名;第二个参数是文件打开“模式”,如只读模式,读写模式,追加模式等 5 返回值:资源 6 */ 7 //获取文件名 8 $file = 'a.txt'; 9 //以只读的方式打开该文件10 $fh = fopen($file, 'r');11 //沿着上面返回的$fh这个资源通道来读文件12 echo  fread($fh, 10);13 /**14 fwrite(handle, string) 向打开的文件中写入内容15 */16 //返回int(0),说明没有成功写入17 //原因:在于第2个Mode参数,选的r,即只读打开。18 var_dump(fwrite($fh, '写入的内容!'));19 /**20 fclose(handle)  关闭文件资源21 */22 fclose($fh);23 /**24 r+ 读写模式。 把指针指向文件头25 注意:从文件头写入时,会覆盖原文件中头部相应的内容26 */27 $file = 'a.txt';28 $fh = fopen($file, 'r+');29 fwrite($fh, 'hello');30 fclose($fh);31 /**32 w:写入模式  该模式无法读取文件中的内容33 该模式会把文件先清空,并将指针停在文件的开头出34 */35 $file = 'a.txt';36 $fh = fopen($file, 'w')37 fwrite($fh, 'hello');38 fclose($fh);39 /**40 a 追加模式。该模式会把文件指针放在文件的最后。可以写入内容41 */42 $file = 'a.txt';43 $fh = fopen($file, 'a');44 fwrite($fh, '我是追加的内容');45 ?>

三:文件读取的几种方式(custom.txt文件在附件中)

 1 <?php 2 /** 3 用文件操作函数,来批量处理客户名单 4 */ 5 /* 6 第一种方式:一次性读入文件的内容,然后分割成数组 7 file_get_contents()获取文件中的内容 8 再用\r\n切成数组 9 注意:各操作系统下,换行符不一致10 win: \r\n11 linux:\n12 mac:\r13 */14 //获取当前目录下的文件15 $file = './custom.txt';16 //获取文件中的内容17 $cont = file_get_contents($file);18 //用explod分割19 print_r( explode("\n", $cont) );20 /* ******** 21 第一种方法用\n区分,不能兼容各种系统,因此通用性不好。22 而且file_get_contents()函数会将文件中的内容一次性读出,遇到大文件容易内存泄露 23 ******** */24 /*25 第二种方式:打开文件,每次读一行;26 用fgets(handle)每次读一行27 feod ,end of file 的意思 ,判断是否是文件的结尾28 */29 //可以在模式中加入b,表示以2进制来处理,可以不受各种系统的显示编码影响30 $file = './custom.txt';31 $fh = fopen($file, "rb");32 while(!feof($fh)){33     echo fgets($fh);34     echo "<br/>";35 }36 /*37 第三种方式 一次性读入,并拆分成数组38 file() 直接读取文件的内容,并按行拆成数组。并返回该数组39 该函数和file_get_contents()一样也是一次性读入文件,文件较大时,慎用40 */41 $file = './custom.txt';42 $arr = file($file);43 print_r($arr);44 ?>

四:判断文件是否存在。获取文件的修改时间/创建时间

 1 <?php 2 /** 3 判断文件是否存在 4 获取文件的创建时间/修改时间 5 */ 6 $file = 'custom.txt'; 7 if(file_exists($file)){ 8     echo $file.'存在<br/>'; 9     //date将日期显示为指定的格式10     echo '该文件上次修改时间是'.date('Y-m-d H:i:s',filemtime($file));11 }else{12     echo '该文件不存在!';13 }14 ?>

 

  相关解决方案