文件处理:目录操作
<?php
/****
燕十八 公益PHP讲堂
论 坛: http://www.zixue.it
微 博: http://weibo.com/Yshiba
YY频道: 88354001
****/
/***
====笔记部分====
文件内容的读取与写入
***/
// 要求:把a.txt的内容读出来,赋给$str变量
/*
file_get_contents()可以获取一个文件的内容或一个网络资源的内容
file_get_contents是读文件/读网络比较 比较快捷的一个函数
帮我们封装了打开/关闭等操作.
但是--小心,这个函数一次性把文件的内容全部读出来,放内存里.
因此,工作中,处理上百M的大文件,慎用此函数
注:file_get_contents 要获取的文件不存在,为报warning
*/
$file = './a.txt';
$str = file_get_contents($file);
/*
// 此函数还可以读网络资源
$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
/****
燕十八 公益PHP讲堂
论 坛: http://www.zixue.it
微 博: http://weibo.com/Yshiba
YY频道: 88354001
****/
/***
====笔记部分====
文件操作之
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
/****
燕十八 公益PHP讲堂
论 坛: http://www.zixue.it
微 博: http://weibo.com/Yshiba
YY频道: 88354001
****/
/*
有一客户名单,每行是一个用户名
要求你把这1000多个用户名,输入到数据库去
*/
<?php
/****
燕十八 公益PHP讲堂
论 坛: http://www.zixue.it
微 博: http://weibo.com/Yshiba
YY频道: 88354001
****/
/***
====笔记部分====
用文件操作函数,来批量处理客户名单
***/
$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
/****
燕十八 公益PHP讲堂
论 坛: http://www.zixue.it
微 博: http://weibo.com/Yshiba
YY频道: 88354001
****/
/***
====笔记部分====
判断文件是否存在
获取文件的创建时间/修改时间
***/
$file = 'custom.txt';
if(file_exists($file)) {
echo $file,'存在<br />';
echo '上次修改时间是',date('Y-m-d H:i:s',filemtime($file));
} else {
echo '不存在 ';
}
浙公网安备 33010602011771号