码迷,mamicode.com
首页 > 其他好文 > 详细

第二讲文件操作函数(第139讲)

时间:2016-01-12 15:08:16      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

一: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\n
11 linux:\n
12 mac:\r
13 */
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 ?>

 

第二讲文件操作函数(第139讲)

标签:

原文地址:http://www.cnblogs.com/ynhs/p/5124139.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!