你好,我想替换以下短语:
tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif
使用:
http://mysite.com/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif
我试过了:
$comments = preg_replace ("tinymce/", "http://mysite.com/tinymce/", $comments);
但是我收到了错误:
warning Delimiter must not be alphanumeric or backslash
你可以帮帮我吗?
感谢
答案 0 :(得分:2)
preg_replace
函数的第一个参数必须是由您选择的字符分隔的正则表达式(正则表达式)。
例如,你应该这样做:
$comments = preg_replace ("`tinymce/`", "http://mysite.com/tinymce/", $comments);
您也可以使用输出缓冲(使用ob_start)在所有网址或任何您想要的内容上应用重写功能。
http://fr.php.net/manual/en/function.ob-start.php
尝试匹配一个真实的表达式,在这里你可以使用str_replace,但是如果你在注释中写下tinymce /那么它也会被替换。
答案 1 :(得分:2)
preg_replace
期望第一个参数是正则表达式
所有正则表达式都需要在例如/regex/
因此,如果您希望代码正常工作,则必须将正则表达式更改为/tinymce\//
(并转义正斜杠)或使用其他分隔符,例如@tinymce/@
答案 2 :(得分:1)
使用str_replace
。
$comments = str_replace ("tinymce/", "http://mysite.com/tinymce/", $comments);
对此非常小心:这是一种非常原始的方法。例如,如果您运行两次,它将替换已经正确的http://mysite.com/tinymce/
中的匹配项,从而打破了该过程中的链接。
答案 3 :(得分:0)
阅读PHP中正则表达式的基础知识(模式必须以定义的字符开头和结尾。@(之后是标志))或使用函数str_replace