读书人

preg_replace 替换的有关问题

发布时间: 2012-09-23 10:28:11 作者: rapoo

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 就可以了

读书人网 >PHP

热点推荐