全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

本文实例讲述了PHP实现类似于C语言的文件读取及解析功能。分享给大家供大家参考,具体如下:

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

需要注意的几个点:

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

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

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

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

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

while(!feof($fp)){
}

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

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

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

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

现在明白,为什么要分多种模式进行区分了。以前觉得没有用。现在看来,打开的文件方式决定了,你能够针对文件做什么(添加新内容还是读取内容。)

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

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


# PHP  # 文件  # 读取  # 解析  # php读取二进制流(C语言结构体struct数据文件)的深入解析  # php简单读取.vcf格式文件的方法示例  # php 写入缓存文件、读取缓存文件的函数代码  # PHP读取CSV大文件导入数据库的实例  # PHP读取Excel类文件  # PHP读取XML格式文件的方法总结  # php删除txt文件指定行及按行读取txt文档数据的方法  # PHP读取zip文件的方法示例  # php遍历、读取文件夹中图片并分页显示图片的方法  # PHP读取、解析eml文件及生成网页的方法示例  # 要注意  # 程序设计  # 判断是否  # 几个  # 也会  # 相关内容  # 句柄  # 则是  # 两种  # 做什么  # 是从  # 感兴趣  # 这两个  # 给大家  # 如果没有  # 掉了  # 更多关于  # 类似于  # 所述  # 需要注意 


相关文章: C++时间戳转换成日期时间的步骤和示例代码  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  制作网站的公司有哪些,做一个公司网站要多少钱?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  如何选择高性价比服务器搭建个人网站?  如何通过宝塔面板实现本地网站访问?  如何在阿里云虚拟主机上快速搭建个人网站?  金*站制作公司有哪些,金华教育集团官网?  如何在新浪SAE免费搭建个人博客?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  昆明高端网站制作公司,昆明公租房申请网上登录入口?  香港服务器如何优化才能显著提升网站加载速度?  建站VPS推荐:2025年高性能服务器配置指南  如何在万网自助建站中设置域名及备案?  简历在线制作网站免费版,如何创建个人简历?  建站之星安装后如何自定义网站颜色与字体?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  如何通过二级域名建站提升品牌影响力?  如何在橙子建站中快速调整背景颜色?  独立制作一个网站多少钱,建立网站需要花多少钱?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  如何选择高效响应式自助建站源码系统?  移民网站制作流程,怎么看加拿大移民官网?  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  制作证书网站有哪些,全国城建培训中心证书查询官网?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  官网网站制作腾讯审核要多久,联想路由器newifi官网  建站主机选哪种环境更利于SEO优化?  高端建站三要素:定制模板、企业官网与响应式设计优化  如何解决VPS建站LNMP环境配置常见问题?  如何使用Golang安装API文档生成工具_快速生成接口文档  建站主机系统SEO优化与智能配置核心关键词操作指南  网站按钮制作软件,如何实现网页中按钮的自动点击?  高防服务器租用如何选择配置与防御等级?  网站制作软件有哪些,制图软件有哪些?  实例解析Array和String方法  如何选购建站域名与空间?自助平台全解析  如何在万网开始建站?分步指南解析  网站制作新手教程,新手建设一个网站需要注意些什么?  建站之星收费标准详解:套餐费用及年费价格表一览  如何快速搭建FTP站点实现文件共享?  无锡营销型网站制作公司,无锡网选车牌流程?  潮流网站制作头像软件下载,适合母子的网名有哪些?  盐城做公司网站,江苏电子版退休证办理流程?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  建站主机如何选?高性价比方案全解析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。