文件操作函数

简介:
要求:把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


相关文章
|
6月前
|
存储 C语言
【文件操作】c语言文件操作(上)
【文件操作】c语言文件操作(上)
|
3月前
|
存储 C语言
文件操作及函数
文件操作及函数
39 0
|
11月前
|
自然语言处理 C++ 知识图谱
文件操作
文件操作
52 0
|
存储 API C语言
深入理解文件操作——纯C(2)
深入理解文件操作——纯C(2)
深入理解文件操作——纯C(2)
|
C语言
【C 语言】文件操作 ( fseek 函数 )
【C 语言】文件操作 ( fseek 函数 )
213 0
【C 语言】文件操作 ( fseek 函数 )
|
存储 C语言
【C 语言】文件操作 ( 按照文本行的方式读写文件 | fgets 函数 | fputs 函数 )
【C 语言】文件操作 ( 按照文本行的方式读写文件 | fgets 函数 | fputs 函数 )
197 0
【C 语言】文件操作 ( 按照文本行的方式读写文件 | fgets 函数 | fputs 函数 )
|
Linux C语言 Windows
【C 语言】文件操作 ( 按照单个字符的方式读写文件 | fgetc 函数 | fputc 函数 )
【C 语言】文件操作 ( 按照单个字符的方式读写文件 | fgetc 函数 | fputc 函数 )
131 0
【C 语言】文件操作 ( 按照单个字符的方式读写文件 | fgetc 函数 | fputc 函数 )
|
C语言
【C 语言】文件操作 ( 按照内存块的方式读写文件 | fread 函数 | fwrite 函数 )
【C 语言】文件操作 ( 按照内存块的方式读写文件 | fread 函数 | fwrite 函数 )
178 0
【C 语言】文件操作 ( 按照内存块的方式读写文件 | fread 函数 | fwrite 函数 )
|
移动开发 Unix Linux
【C 语言】文件操作 ( fread 函数 )
【C 语言】文件操作 ( fread 函数 )
221 0
【C 语言】文件操作 ( fread 函数 )
|
C语言
【C 语言】文件操作 (fscanf、fprintf 函数)(一)
【C 语言】文件操作 (fscanf、fprintf 函数)(一)
126 0
【C 语言】文件操作 (fscanf、fprintf 函数)(一)

热门文章

最新文章