<?php
$str='[zx1][zx21]...';
$search  = '/\[zx(.+)\]/U';
$replace = '<img src="$1.gif">';
echo htmlspecialchars(preg_replace($search,$replace,$str));
?>

解决方案 »

  1.   

    $str = "[zx111]";
    echo preg_replace("/\[zx(\d+).*/","<img src='\\1.gif'>",$str);
      

  2.   

    preg_replace("/\[zx(\d+)\]/","<img src=\"\$1.gif\">",$str)
      

  3.   

    多谢,1楼和3楼的都得出了正确结果2楼的,如果处理这样的内容时:asdfwwww[zx80]asdfcccc[zx29]aaaa.fff..,就会得不到正确结果,同样也感谢你的答案,想请教下,1楼和3楼的,/\[zx(.+)\]/U和/\[zx(\d+)\]/有何异曲同工之妙呢?