添加替换url php

时间:2011-05-15 09:49:44

标签: php url preg-replace

你好,我想替换以下短语:

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
你可以帮帮我吗? 感谢

4 个答案:

答案 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