文件操作
常用函数:
- fopen :打开一个文件,返回一个句柄资源
fopen( filename,mode);第二个参数是模式,如读写模式,追加模式返回值:资源沿着上面返回的 f i l e n a m e , m o d e ) ; 第 二 个 参 数 是 模 式 , 如 读 写 模 式 , 追 加 模 式 返 回 值 : 资 源 沿 着 上 面 返 回 的 fh这个资源通道来读文件
$file = 'new.html';
$fh = fopen($file,'r');
echo fread($fh,20),'<br />';
- fread:
fread($fh,10);
var_dump(fwrite($fh,'我来了!!!!!!'));
返回int(0),是没有写入成功
原因:第二个model参数选的是r,即只读打开
fclose:
fclose($fh);//关闭资源
//r+是读写模式,并把指针指向文件头
$fh = fopen($file,'r+');
echo fwrite($fh,'hello')?'成功':'失败','<br />';
echo '<br />';
echo '<hr />';
$fh = fopen('./a.txt','w');
fclose($fh);
echo 'ok';
w:是写入模式(fread读不了),并把文件大小截为0(w文件被清空),指针停于开头处
写入成功,从文件头写入时被覆盖相等字节的字符
a:追加 模式打开,能写,并把指针停在文件的最后
*/
$fh = fopen('a.txt','a');
echo fwrite($fh,'白云一篇')?'成功':'失败';
fclose($fh);
批量处理客户名单
- 第一种方法:简单快捷暴力的方法
file_get_contents
$file = 'a.txt';
$cont = file_get_contents($file);//file_get_contents获取内容
print_r(explode("\n",$cont));//再用\r\n分割成数组
注意:各操作系统下,换行符不一致
win:\r\n
unix:\n
mac:\r
- 第二种
打开,一点一点的读,每次读一行,fgets(),每次读一行, 模式里面可以加b,表示以二进制来处理,不受编码的干扰.
$file = 'a.txt';
echo '<hr />';
$fh = fopen($file,'rb');
while(!feof($fh)){
echo fgets($fh),'<br />';
}
- 第三种:比较暴力的方法
file文件直接读取文件内容,并按行才分成数组,返回该数组
和file_get_contents的相同之处:一次性读入,大文件慎用
$arr= file($file);
print_r($arr);