Php 返回行,包括找到的字符串
假设我有一个HTML文档:(下面的摘录和行号) 我想找到找到字符串的行号(假设该字符串在文档中只出现一次),并返回该行中找到的全部内容。比如说,Php 返回行,包括找到的字符串,php,html,line-numbers,Php,Html,Line Numbers,假设我有一个HTML文档:(下面的摘录和行号) 我想找到找到字符串的行号(假设该字符串在文档中只出现一次),并返回该行中找到的全部内容。比如说, getLine('myDiv'); //returns <div id="myDiv"> getLine('class="mySpan"'); //returns <span class="mySpan">Some Text</span> getLine('myDiv')//返回 getLine('class=“m
getLine('myDiv'); //returns <div id="myDiv">
getLine('class="mySpan"'); //returns <span class="mySpan">Some Text</span>
getLine('myDiv')//返回
getLine('class=“mySpan”)//返回一些文本
我该怎么做?谢谢大家! 理解
line
作为由换行符('\n')分隔的字符集,可以按如下方式分解$html字符串:
$lines = explode("\n", $html);
然后在保持行计数的同时迭代每行:
$lineno = 1;
foreach ($lines as $line) {
if (strstr($line, $what_to_find) !== FALSE) {
//Match
echo "Line $lineno: $line\n";
}
$lineno++;
}
有没有比foreach更好的方法来处理几千行的数据?您可以首先使用strpos($html,$pinder)获取第一次出现的指针的位置,然后来回扫描以找到该行的开始和结束位置(即查找\n)。然而,它值得吗?例如,您是否尝试过“foreach”对10k行的文件执行得不好?我知道它将在
500行
和1000行
之间,因此我将只对循环使用,从500行开始。谢谢!:-)
$lines = explode("\n", $html);
$lineno = 1;
foreach ($lines as $line) {
if (strstr($line, $what_to_find) !== FALSE) {
//Match
echo "Line $lineno: $line\n";
}
$lineno++;
}