php限制搜索结果的文本

时间:2017-04-26 19:55:50

标签: php html regex

经过一些搜索和谷歌搜索后,我找到了一个代码,用于突出显示和限制搜索结果的文本类似于此文本:

$text = preg_replace("/^.*?(.{0,100})\b($word)\b(.{0,100}).*?$/mi", '\1<span class="highlight_word">\2</span>\3', $text);

不幸的是,即使$text的内容按预期放在范围内,我也总是得到完整的$word

我现在的问题是如何将$text的内容减少为在搜索结果之前和之后显示100个字符($ word的内容)。 我还使用webportal检查了几个变体中的正则表达式,并获得了所需的结果。然而,我的PHP代码没有显示出预期的内容。 任何帮助都非常感谢,因为我认为我身边有一个非常愚蠢的错误。

1 个答案:

答案 0 :(得分:1)

当您使用m标记时,^$匹配行的开头和结尾,而不是字符串的开头和结尾。因此,这一次仅匹配并替换为$text的单行,并且不匹配的行将保持不变。

如果要跨多行匹配,请使用s修饰符。这允许.匹配换行符,但^$仍然只匹配$text的开头和结尾。