PHP文本操作函数

  • 2,124

file_get_contents()可以获取一个文件的内容或一个网络资源的内容

file_get_contents是读文件/读网络比较 比较快捷的一个函数

帮我们封装了打开/关闭等操作.

<?php





// 要求:把a.txt的内容读出来,赋给$str变量

/*
file_get_contents()可以获取一个文件的内容或一个网络资源的内容
file_get_contents是读文件/读网络比较 比较快捷的一个函数
帮我们封装了打开/关闭等操作.

但是--小心,这个函数一次性把文件的内容全部读出来,放内存里.
因此,工作中,处理上百M的大文件,慎用此函数


注:file_get_contents 要获取的文件不存在,为报warning
*/

$file = './a.txt';
$str = file_get_contents($file);
//echo $str;
/*
// 此函数还可以读网络资源
$url = 'http://news.163.com/photoview/00AO0001/29398.html';
echo file_get_contents($url);
*/


// 读出来的内容,能否写到另一个文件里去呢?
/*
file_put_contents() 这个函数用来把内容写入到文件
也是一个快捷函数,帮我们封装打开写入关闭的细节.

注:如果指定的文件不存在,则会自动创建
*/
file_put_contents('./b.txt',$str);





/**
最简单的小偷程序
**/

$url = 'http://view.163.com/special/reviews/unionsecede1119.html';
$html = file_get_contents($url);

if(file_put_contents('163news.html',$html)) {
    echo '偷来了';
} else {
    echo '被抓了';
}
<?php



/***
====笔记部分====
文件操作之
fopen
fread
fwrite
fclose
***/


/*
fopen() 打开一个文件, 返回一个句柄资源
fopen($filename,mode);
第2个参数是"模式",如只读模式,如读写模式,如追加模式
返回值: 资源
*/


$file = '163news.html';
$fh = fopen($file,'r');

// 沿着上面返回的$fh这个资源通道来读文件
echo fread($fh,10),'<br />';

// 返回int(0),说明没有成功写入
// 原因: 在于第2个Mode参数,选的r,即只读打开
var_dump(fwrite($fh,'我来了!!!!!!!'));


// 关闭资源
fclose($fh);



/*
r+读写模式,并把指针指向文件头
写入成功
注意:从文件头,写入时,覆盖相等字节的字符.
$fh = fopen($file,'r+');
echo fwrite($fh,'hello')?'成功':'失败','<br />';
flose($fh);
*/



/*
w:写入模式(fread读不了)
并把文件大小截为0 (文件被清空了)
指针停于开头处


echo '<hr />';
$fh = fopen('./modew.txt','w');
fclose($fh);
echo 'OK';
*/


/*
a: 追加模式打开,
能写,并把指针停在文件的最后
*/
$fh = fopen('modea.txt','a');
echo fwrite($fh,'白云一片,测试加入')?'OK modea':'fail';
fclose($fh);



<?php

/*
有一客户名单,每行是一个用户名
要求你把这1000多个用户名,输入到数据库去
*/

/***
====笔记部分====
用文件操作函数,来批量处理客户名单
***/


$file = './custom.txt';


/**
第一种办法,简便快捷暴力的办法
file_get_contents获取内容
再用\r\n切成数组

注意: 各操作系统下,换行符并不一致
win: \r\n
*nix: \n
mac: \r

$cont = file_get_contents($file);
//下面这个用\n区分,通用性并不好
print_r(explode("\n",$cont));
**/


/** 
第二种,打开,一点点的读,每次读一行
fgets() 每次读一行
**/

// 模式里面可以加b,表示以2进制来处理 ,不受编码的干扰

/*
$fh = fopen($file,'rb');
echo fgets($fh),'<br />'; //zhangsan
echo fgets($fh),'<br />'; // lisi
echo fgets($fh),'<br />'; // wangwu
*/


// 文件的指针一直再往后移动,
// feof ,end of file的意思
// 专门用来判断指针是否已经走到结尾
/*
$fh = fopen($file,'rb');
while(!feof($fh)) {
    echo fgets($fh),'<br />';
}

*/



// 第三种,也是比较暴力的办法
/*
file函数,直接读取文件内容,并按行拆成数组,
返回该数组

和file_get_contents的相同之处:
一次性读入,大文件慎用!
*/
$arr = file($file);
print_r($arr);





<?php



/***
====笔记部分====
判断文件是否存在file_exists()
获取文件的创建时间/修改时间
***/

$file = 'custom.txt';
if(file_exists($file)) {
    echo $file,'存在<br />';
    echo '上次修改时间是',date('Y-m-d H:i:s',filemtime($file));
} else {
    echo '不存在 ';
}

 

weinxin
我的微信
这是我的微信扫一扫
开拓者博主
  • 本文由 发表于 2016年9月7日08:05:29
  • 转载请务必保留本文链接:https://www.150643.com/336.html
匿名

发表评论

匿名网友 填写信息

评论:7   其中:访客  7   博主  0
    • ChinaUnix博客 ChinaUnix博客 0

      总结的很全面,顶一下!

      • DD博客 DD博客 1

        博客做的不错!欢迎回访!

          • 开拓者博主 开拓者博主

            @ DD博客 只不过是学习的笔记罢了!

          • java技术博客 java技术博客 0

            过来看一下!总结的不错,学习了…

            • ITeye技术网站 ITeye技术网站 0

              顶一下,欢迎回访 :smile: