我有一些代码可以创建查询字符串并循环遍历并检查查询字符串。
$pi = An ip defined
$bo = The content of a file.
我正在$bo
内搜索并寻找$pi
,我想打印出与该字符串匹配的所有行,但是从{{1 }}。
这是$bo
中包含的内容:
$bo
答案 0 :(得分:1)
这是一种通用模式,可用于包含$ip
字符串的整行:
$pattern = '/^.*\b' . $ip . '\b.*$/m';
然后,我们可以将此模式与preg_match_all
一起使用以查找所有匹配的行:
preg_match_all($pattern, $body, $matches);
print_r($matches[0]);
答案 1 :(得分:0)
我将使用preg_grep()
而不是preg_match()
,因为它直接返回匹配项,并且不需要构建模式来捕获行。但是,它确实要求输入必须是文件中的行数组,您可以通过file()
或explode()
轻松地做到这一点:
// Read a file directly into an array.
$body = file('/path/to/file');
// Or split an existing big string into an array of lines.
$body = explode("\n", $fileContents);
foreach (preg_grep($ip, $body) as $line) {
echo $line;
}
或者只是:
echo implode("\n", preg_grep($ip, $body));