我正在使用str_replace搜索并用html代码< span class =“warn_class”>替换一些短代码作为[warning]。警告< /跨度>这是我的代码
function replace($ text){ $ text = …
使用 preg_replace() 为了替换所有特定的短代码 的 不 强> 有一个 \ 之前写的。
preg_replace()
\
然后, preg_replace() 要么 str_replace() 以a开头的短代码 \ 删除这个,所以显示原始短代码。
str_replace()
function replace($text) { $text = preg_replace('/([^\\\\])\[warning\]/', '$1<span class="warning_class"> Warning <span>', $text); $text = str_replace('\\[warning]', '[warning]', $text); return $text; } echo replace('replaced shortcode: _[warning] ; show original shortcode: \\[warning]'); // Output: replaced shortcode: _ Warning ; show original shortcode: [warning]
正则表达式包含四个反斜杠,因为在PHP中如何处理字符串。真正的正则表达式应该是: ([^\\])\[warning\] 有:
([^\\])\[warning\]
(...)
[^\\]
\[warning\]
[warning]
$1 在第二个参数是引用 (...) 内容(这里,它将是之前的角色 [ 您的短代码,如果它不是反斜杠)。
$1
[