PHP 替换 html 输出中的字符串


Php replacing strings in html ouput

我正在尝试替换代码中的第一个字符串

$confirmation_message = apply_filters("pmpro_confirmation_message",  $confirmation_message, false);
    $confirmation_message = preg_replace('mysite.com', 'mysite.com?true', $str, 1);
    echo $confirmation_message;

但它给了我一个奇怪的错误

   Delimiter must not be alphanumeric or backslash line

这是 $confirmation_message 的原始输出

   <p><font><font class="">Visit your new site here: </font></font><a href="mysite.com/"><font><font class="">mysite.com</font></font></a></p>
  <p><font><font class="">Manage your new site here: </font></font><a href="mysite.com/wp-admin/"><font><font class="">mysite.com/admin</font></font></a></p>

正如 Olaszewski @Piotr评论的那样,您需要将分隔符添加到模式中。

$confirmation_message = preg_replace('/mysite'.com/', 'mysite.com?true', $confirmation_message, 1);

还要注意模式中的转义点。

如果要替换所有出现的 mysite.com,可以使用str_replace以获得更好的性能:

$confirmation_message = str_replace('mysite.com', 'mysite.com?true', $confirmation_message);