我希望在大型文本文件中读取两个标签之间的文件内容(因此,由于我的服务器提供商的内存限制,无法一次读取整个文件)。该文件有大约500000行文本。
这个(PHP: Read Specific Line From File)不是一个选项(我不认为),因为我需要阅读的文字长度不同,会占用多行(从20-5000行不等)。< / p>
我打算使用 fopen , fread (只读)和 fclose 来读取文件内容。 我已经有使用这些功能的经验。
我希望阅读文件选定部分的所有内容。的即
文件内容示例
<<TAGNAME-1>>AAAA AAAA AAAA<<//TAGNAME-1>>
<<TAGNAME-2>>TEXT TEXT TEXT<<//TAGNAME-2>>
在我的脚本中将"AAAA AAAA AAAA"
作为变量调用时,选择<<TAGNAME-1>>
和<<//TAGNAME-1>>
之间的文字TAGNAME-1
。
我怎样才能选择我需要的两个标签之间的所有文字? (并忽略文件的其余部分)我能够在我的php脚本中创建两个标签 - 我的问题是在 fread 函数中实现这一点。 / p>
答案 0 :(得分:0)
您可以grep文本文件,该文件只返回带有匹配标记的文本。
$tagnum = 2; //variable
$pattern = "<<TAGNAME-";
$searchstr = $pattern.$tagnum; //concat the prefix with the tag number
$fpath ="testtext.txt"; //define path to text file
$result = exec('grep -in "'.$searchstr.'" '.$fpath);
echo $result;
$ tagnum将定义要搜索的每个标记。我已经在沙盒中对它进行了测试,它按预期工作。请注意,这将读取整行,直到达到结束tad或换行符。 的问候,