从大文本文件中读取SELECTED内容(变长文本)

时间:2014-01-22 23:34:41

标签: php file-io tags large-files

我希望在大型文本文件中读取两个标签之间的文件内容(因此,由于我的服务器提供商的内存限制,无法一次读取整个文件)。该文件有大约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>

1 个答案:

答案 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或换行符。 的问候,