本文实例讲述了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文件及生成网页的方法示例
# 要注意
# 程序设计
# 判断是否
# 几个
# 也会
# 相关内容
# 句柄
# 则是
# 两种
# 做什么
# 是从
# 感兴趣
# 这两个
# 给大家
# 如果没有
# 掉了
# 更多关于
# 类似于
# 所述
# 需要注意
相关文章:
如何用已有域名快速搭建网站?
高端企业智能建站程序:SEO优化与响应式模板定制开发
建站之星展会模版如何一键下载生成?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
如何选择高性价比服务器搭建个人网站?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
简单实现Android文件上传
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
Swift中switch语句区间和元组模式匹配
如何配置FTP站点权限与安全设置?
已有域名能否直接搭建网站?
建站VPS能否同时实现高效与安全翻墙?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
,在苏州找工作,上哪个网站比较好?
常州企业建站如何选择最佳模板?
如何解决ASP生成WAP建站中文乱码问题?
网站制作说明怎么写,简述网页设计的流程并说明原因?
郑州企业网站制作公司,郑州招聘网站有哪些?
如何快速搭建高效WAP手机网站吸引移动用户?
微信推文制作网站有哪些,怎么做微信推文,急?
建站上市公司网站建设方案与SEO优化服务定制指南
制作门户网站的参考文献在哪,小说网站怎么建立?
潮流网站制作头像软件下载,适合母子的网名有哪些?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
孙琪峥织梦建站教程如何优化数据库安全?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
如何在Golang中使用replace替换模块_指定本地或远程路径
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
如何彻底卸载建站之星软件?
如何在阿里云域名上完成建站全流程?
如何规划企业建站流程的关键步骤?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何破解联通资金短缺导致的基站建设难题?
装修招标网站设计制作流程,装修招标流程?
建站之星上传入口如何快速找到?
建站主机选购指南:核心配置与性价比推荐解析
网站制作软件免费下载安装,有哪些免费下载的软件网站?
建站之星导航菜单设置与功能模块配置全攻略
C#如何在一个XML文件中查找并替换文本内容
如何在阿里云虚拟服务器快速搭建网站?
如何通过老薛主机一键快速建站?
建站主机CVM配置优化、SEO策略与性能提升指南
linux top下的 minerd 木马清除方法
如何通过虚拟主机快速搭建个人网站?
如何通过远程VPS快速搭建个人网站?
全景视频制作网站有哪些,全景图怎么做成网页?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
制作宣传网站的软件,小红书可以宣传网站吗?
*请认真填写需求信息,我们会在24小时内与您取得联系。