我希望在一个大文本文件中的两个标记之间读取文件的内容(因此由于我的服务器提供程序上的内存限制,无法同时读取整个文件)。这个文件大约有500000行文字。
这( PHP: Read Specific Line From File )不是一个选项(我不认为),因为我需要阅读的文本长度不同,将占用多行(从20-5000行不等)。
我计划使用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函数中实现这一点。
发布于 2014-01-23 00:53:23
您可以使用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或换行符为止。致以敬意,
https://stackoverflow.com/questions/21296370
复制相似问题