/*
file_get_contents()可以获取一个文件的内容或网络资源的内容
file_get_contents()是读文件/读网络比较便捷的一个函数
帮我们封装了打开/关闭等操作、
但是--小心,这个函数一次性把文件的内容全部放在内存里;
因此工作中,处理上百MB的大文件,慎用此函数。
注意:file_get_contents()要获取的文件不存在,会报warning;
*/
$file = './a.txt';
file_get_contents($file);
$url = 'www.baidu.com';
file_get_contents($url);
//读出来的内容,能否写到另一个文件里去呢?
file_put_contents()这个函数用来把内容写入到文件中
也是一个快捷函数,帮我们封装打开写入关闭的函数
注意:如果file_put_contents要获取的文件不存在,会自动创建改文件!
file_put_contents('./b.txt',$file);//将$file内容写入./b.txt中
/*
最简单的小偷程序
*/
$url = 'http://itafei.blog.51cto.com';
$html = file_get_contents($url);
if(file_put_contents('afei.blog.html',$html)){
ehco '偷成功';
}else{
echo '没偷成功';
}
/*
文件操作之:
fopen
fread
fclose
fwrite
*/
/*
fopen()打开一个文件,返回一个句柄资源
fopen($filename,mode);
第二个参数是'模式',如只读模式,如读写模式,如追加模式;
返回值:资源
*/
$file = 'afei.blog.html';
$fh = fopen($file,'r');
//沿着上面返回的$fh这个资源通道来读文件
echo fread($fh,10);//10位读取的位数
//返回int(0),说明没有成功写入
//原因:在于第二个mode参数,选的r,即只读文件;
var_dump(fwrite($fh,'我来了!!!'));
//关闭资源
fclose($fh);
//r+是读写模式,并把指针指向文件头
//写入成功
//注意:从文件头,写入时,覆盖相等字节的字符
$fh = fopen($file,'r+');
echo fwrite($fh,'hello')?'成功':'失败';
fclose($fh);
/*
w是写入模式(fread读不了),并把文件大小截位0(文件被清空),指针停在开头处;
*/
$fh = fopen('itafei.blog.txt','w');
fclose($fh);
/*
a是追加模式打开;
能写,并把指针停在文件的最后
*/
$fh = fopen('afei.blog.txt','a');
fwrite = ($fh,'白云一片')?'成功':'失败';
fclose($fh);
/*
rb 表示以2进制来处理,不会受编码的干扰
*/
/*
有一客户名单,每行是一个用户名
要求你把这1000多个用户名输入到数据库中,怎么做?
*/
//用文件操作函数,来批量处理客户名单
//第一种办法,简单快捷暴力的办法
//file_get_contents来获取内容
//再用\r\n切成数组
/*
注意:在各系统下,换行符并不一致
win:\r\n
unix:\n
mac:\r
*/
$file = './custom.txt';
$cont = file_get_contents($file);
//下面这个用\n区分,通用性并不好
print_r(explode("\n",$cont));
/*
第二种,打开,一点点的读,每次读一行
fgets(),每次读一行
*/
$fh = fopen($file,'rb');
echo fgets($fh);
/*
文件的指针一直再往后移动
feof,end of file的意思
专门用来判断指针是否已经走到结尾
*/
$fh = fopen($file,'rb');
while(!feof($fh)){
echo fgets($fh);
}
/*
第三种,也是比较暴力的方法
file函数,直接读取文件内容,并按行拆成数组;
返回该数组
和file_get_contents有相同之处,
一次性读入大文件,慎用!
*/
$arr = file($file);
print_r($arr);
/*
判断文件是否存在?
获取文件的创建时间/修改时间
*/
$file = 'custom.txt';
if(file_exists($file)){
echo $file,'存在<br/>';
echo '上次修改时间是:',date('Y-m-d,H:m:s',fileetime($file));
}else{
echo '不存在';
}
本文转自 IT阿飞 51CTO博客,原文链接:http://blog.51cto.com/itafei/1711429