处理、解析和流式传输大型文本文件的实用方法是什么
What is a practical way to process, parse, and stream a large text file?
我目前有一个日志文件流(文本格式),它不断被正在运行的进程附加到。我正在使用PHP将其处理为JSON格式,然后使用jQuery的getJSON对其进行解析。
我想知道在日志文件中获取数据的实用方法是什么。我使用了jQuery的post函数,该文件太长而无法获取。函数getJSON很好,但是日志文件足够长,PHP无法处理它,所以它不会被传递给函数。
我曾考虑过限制日志文件中的行数(来自 CentOS),并从日志文件中获取一定数量的行数(对于速度不切实际),但我该怎么做?
要只阅读文件的最后一部分,请搜索到一个好的位置并从那里开始。例如:
define('FILE', '/var/log/logfile');
define('SIZE', 1024*1024);
if (filesize(FILE) <= SIZE) {
$text = file_get_contents(FILE);
} else {
$fh = fopen(FILE, 'r');
fseek($fh, -SIZE, SEEK_END);
// Remove up to newline to avoid a broken line
$skip = strlen(fgets($fh));
$text = fread($fh, SIZE - $skip);
fclose($fh);
}
// Do your work with $text here...
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- Sails.js:同时发布文本输入和一个文件
- 使用不带文本文件的OpenLayers显示POI
- 从单独的html文件预览Javascript文本
- 使用JSON文件中的变量(字符串)填充文本区域
- 使用javascript从文本文件中获取值
- 从javascript中的文本文件中获取值
- 在移动浏览器上显示大型文本文件
- 搜索文本文件并附加到表中
- 将文本文件加载到javascript中
- Angular http.get没有'我不喜欢在开头和结尾加方括号的文本文件
- 一个javascript实现base64图像编码并将结果写入文本文件
- 用javascript读取文本文件的第一行
- 从文本文件js中读取列表
- 使用JavaScript将压缩文本文件加载到字符串中
- 可以设置输入类型=文件的文本框的高度
- 数组在手动写入时有效,但从文本文件加载时无效
- 在浏览器中打开文本文件-服务器上出现错误
- 使用SeleniumWebdriver将文本复制到文件时出现编译错误的解决方案
- 使用 d3 或 ajax 读取本地文件文本(制表符分隔值)会导致 Firefox 开发控制台中的语法错误