联系我们 - 广告服务
您的当前位置:官网首页 > 资讯 > 热评 >

PHP实现类似于C语言的文件读取及解析功能

来源: 编辑: 时间:2019-08-14
导读: 本文实例讲述了php实现类似于c语言的文件读取及解析功能。分享给大家供大家参考,具体如下:$log_file_name = 'd:/static/develop......

本文实例讲述了php实现类似于c语言的文件k8凯发国际娱乐读取及解析功能。分享给大家供大家参考,具体如下:

$log_file_name = 'd:/static/develop/kuai_zhi/acagrid.com/public/logs/'.date.'/'.date.'_error.log';
//$log_file_name = 'd:/static/develop/kuai_zhi/acagrid.com/public/logs/201701/19_error.log';
if) return;
$handle = fopen;
 if  {
 exit;
// $stream = fread;//从文件当前指针位置,往后读取n个字节长度
//重置文件指针的位置。指定指针的位置,指针位置修改后。读取文件,后面是从这个位置开始读取了
//fseek;
//fgets表示每次读取文件的一行
$error_log_array = [];
while ) !==false){
 //每次读取一行
 //匹配出现[1],tp日志中用这种表示致命错误类型
 if){
 $error_log_array[] = $line;
fclose;

需要注意的几个点:

1、如果是使用fwrite,注意避免将原来文件的内容清空掉了。关键是fopen的打开方式。r或者w。

如果使用追加方式则是a标记。

2、fopen的时候,注意判断是否成功打开文件。避免使用feof的时候进入死循环。因为这个函数,当传入进去不是指针,则这个函数永远会返回false

feof的本意是:判断是否为文件结尾。如果是结尾,则返回true。不是结尾返回false。如果恰好传入非法的指针,那么永远不是文件结尾了,一直返回false。

feof函数,当传入进去的不是指针类型的时候,使用如下判断会出现死循环

while){

3、fread和fgets。读取文件一行一行读取,则使用fgets。不是按照行读取,则使用fread读取。

要注意这一点细节:如果没有更多的内容,则返回false,也就是两种情况,如果里面的内容为空。也会返回false。当读取到文件的结尾的时候,这两个函数也是返回false使得我们不会发现这个细节,因为这个函数已经帮助我们判断文件结尾了)

4、使用追加方式打开文件,要注意,这种方式下,无法读取文件内容的,只能往里面写入文件。所以针对这个句柄进行fread是会得到false的

总结是,如果只是仅仅读取文件的内容,就只用读的方式打开,如果是写入新内容进去,则用a的方式打开

现在明白,为什么要分多种模式进行区分了。以前觉得没有用。现在看来,打开的文件方式决定了,你能够针对文件做什么

更多关于php相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《php数组操作技巧大全》、《php基本语法入门教程》、《php面向对象程序设计入门教程》、《php网络编程技巧总结》及《php字符串用法总结》

希望本文所述对大家php程序设计有所帮助。

责任编辑:

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

网友评论:

在“\templets\demo\comments.htm”原来的内容全部删除,插入第三方评论代码,如果不需要评论功能,删除comments.html里面的内容即可
推荐使用友言、多说、畅言(需备案后使用)等社会化评论插件

Copyright © 2018 k8凯发国际娱乐k8凯发国际娱乐-k8凯发国际娱乐下载-k8凯发官方 All Rights Reserved Power by DedeCms
本站所有资讯来源于网络 如有侵权请联系QQ:9490489
Top