当前位置: 代码迷 >> PHP >> preg_replace 替换的有关问题
  详细解决方案

preg_replace 替换的有关问题

热度:393   发布时间:2016-04-28 23:55:10.0
preg_replace 替换的问题
PHP code
    $string = <<<str        ……………………        <img src="/img/pvistely/1.jpg" />        <img src="/img/pvistely/2.jpg" />        <img src="/img/pvistely/3.jpg" />        ……………………str;    $pattern = array('<img src="/img/pvistely/1.jpg" />','<img src="/img/pvistely/2.jpg" />','<img src="/img/pvistely/3.jpg" />');    $replace = array('[img]1.jpg[/img]','[img]2.jpg[/img]','[img]3.jpg[/img]');    echo preg_replace($pattern, $replace, $string);


得到这样的结果:

PHP code
    ……………………     <[img]1.jpg[/img]>     <[img]2.jpg[/img]>     <[img]3.jpg[/img]>     ……………………



为什么会多出两个尖括号 < > ?
要怎么才能把这个< > 也替换掉?

------解决方案--------------------
$pattern = array('<<img src="/img/pvistely/1.jpg" />>','<<img src="/img/pvistely/2.jpg" />>','<<img src="/img/pvistely/3.jpg" />>');
------解决方案--------------------
你用的是 preg_replace
$pattern 项中两端的<>被当做规则串的分界符了

用 str_replace 就可以了