使用preg_REPLACE替换<;br/>;
我读了一些关于preg_place的文章,仍然不明白所有这些奇怪的]{!(‘/)[字符是什么意思。
基本上,我希望找到Break的第一个实例<br />
,并将其替换为</strong><br />
我的代码:preg_replace('<br />', '</strong><br />', nl2br($row['n_message']), 1)
但我知道我在声明字符串<br />
和</strong>
时遗漏了一些东西。
有什么帮助吗?谢谢。
解决方案
正则表达式
您唯一缺少的是regexp模式中的分隔符。我相信这可以是任何一个字符;一个常见的选择是一个向前的劈开。但是,当然,您必须转义现有的正斜杠。这里有两个使用前向劈开和右方括号的示例。$text = preg_replace('/<br />/', '</strong><br />', nl2br($text), 1);
$text = preg_replace(']<br />]', '</strong><br />', nl2br($text), 1);
替代方案
我同意michaeljdennis的观点,在这种情况下您应该使用str_replace
。preg_replace
适用于高级替换,但不适用于如此简单的替换。
但是,str_replace
没有$Limit参数。如果您希望将替换数量限制为第一个实例,请执行类似
// Split the string into two pieces, before and after the first <br />
$str_parts = explode('<br />', $row['message'], 2);
// Append the closing strong tag to the first piece
$str_parts[0] .= '</strong>';
// Glue the pieces back together with the <br /> tag
$row['message'] = implode('<br />', $str_parts);
相关文章