preg_replace()错误' /'。只替换第一场比赛

时间:2018-01-02 21:53:45

标签: php

我有这段代码将图片网址转换为图片。

我想只转换第一张图片,所以:

if(preg_match('/(https?:\/\/\S+\.(?:jpg|png|gif))/', $titulo, $matches)){
    //$titulo = str_replace($matches[0], "<br><img src=\"$matches[0]\"><br>", $titulo);
    $titulo = preg_replace("/$matches[0]/i", "<br><img src=\"$matches[0]\"><br>", $titulo, 1);
 }

问题是preg_replace / $ matches [0]给出了这个错误:

Warning: preg_replace(): Unknown modifier '/' in C:\xampp\htdocs\test.php on line 36

它不起作用。任何想法为什么?

1 个答案:

答案 0 :(得分:0)

$ match [0]包含斜杠,表示expresion的结束。您可以更改分隔符

"~$matches[0]~i"

制作it work s。但更好的方法是使用preg_quote函数,它将“特殊”字符和符号设置为第二个参数(thx到@salathe注释)。

这样做是为了不要害怕错误的用户输入:

'/'.preg_quote($matches[0], '/').'/i'

about preg-quote