文件操作函数

简介:
要求:把a.txt的内容读出来,赋给$str变量
/*
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


相关文章
|
7月前
|
移动开发 Linux 程序员
c++文件操作,超详细
c++文件操作,超详细
110 0
|
7月前
|
C语言
文件操作(2)
文件操作(2)
46 3
|
6月前
|
存储 程序员 编译器
文件操作详解
文件操作详解
64 0
|
7月前
|
存储 编译器 C语言
C语言进阶⑱(文件上篇)(动态通讯录写入文件)(文件指针+IO流+八个输入输出函数)fopen+fclose(下)
C语言进阶⑱(文件上篇)(动态通讯录写入文件)(文件指针+IO流+八个输入输出函数)fopen+fclose
54 0
|
7月前
|
C语言
C语言进阶⑱(文件上篇)(动态通讯录写入文件)(文件指针+IO流+八个输入输出函数)fopen+fclose(中)
C语言进阶⑱(文件上篇)(动态通讯录写入文件)(文件指针+IO流+八个输入输出函数)fopen+fclose
70 0
|
7月前
|
存储 数据库 C语言
C语言进阶⑱(文件上篇)(动态通讯录写入文件)(文件指针+IO流+八个输入输出函数)fopen+fclose(上)
C语言进阶⑱(文件上篇)(动态通讯录写入文件)(文件指针+IO流+八个输入输出函数)fopen+fclose
55 0
|
7月前
|
弹性计算 运维 Shell
文件操作
【4月更文挑战第30天】
42 0
|
7月前
|
存储 C语言
文件操作及函数
文件操作及函数
57 0
|
存储 数据库 C语言
|
编译器 C++ iOS开发
C++文件操作解析及使用(读、写文件 使用文件指针)
C++文件操作解析及使用(读、写文件 使用文件指针)
280 0
C++文件操作解析及使用(读、写文件 使用文件指针)