我正在使用preg_replace在我的网站上创建搜索内容的片段,并突出显示搜索到的术语(如google)。它在我的页面上使用静态变量时有效,但是当我从数据库中检索数据时,它不会。代码如下:Preg_replace动态内容?
foreach ($searchcontent ->result() as $row)
{
$text = $row->content;
$keyword = 'investment';
$size = 165;
$snippet = preg_replace(
'/^.*?\s(.{0,'.$size.'})(\b'.$keyword.'\b)(.{0,'.$size.'})\s.*?$/',
'...$1<strong>$2</strong>$3...',
$text
);
echo $snippet;
}
如果我改变了一些静态的内容,如$文本变量: "We are happy to consultant on your investments"
它的工作原理。但是,当我从数据库中获取数据时,它不会。
从数据库中的文本样本(包含HTML,可能是问题),
<h2>Investments<h2>
<hr />
<p>We are happy to consult on your investments</p>
一个人怎么会去剥离HTML标签的字符串?并得到preg_replace工作????
当然这是问题所在。数据库是否每次都返回相同的html?或者它可以改变? – FailedDev
或多或少有相同的格式,但可能会有所不同 – hairynuggets
只要你处理纯html,我认为'str_replace()'就足够了。无论如何,提到的“正则表达式”表达式似乎与其主题相比过于复杂。 – yoda