我正在尝试替换代码中的第一个字符串
$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);