什么都不用,直接用连接符".",就可以了,用那些不仅浪费系统资源,也浪费执行时间。代码:
<?php
$r="<li>"."<a href='1-4.html'>4 </a>"."</li>";
?>
$r为楼主问题结果

解决方案 »

  1.   

    啊 晕 不是这样的 里面的'1-4.html' 4 可能是很多不同的内容
    也就是说有大量的链接要处理.....
      

  2.   

    哦 天哪
    就是
    <a href='XXXXXXXXX'>XXXXXX</a>
    替换成
    <li><a href='XXXXXXXXX'>XXXXXX</a></li>
    就是在链接前后加上那么个标签li 但链接的内容不变
      

  3.   

    $str = "fff<a href='1-4.html'>4</a>vvv<a href='1-5.html'>5</a>fff";
    echo preg_replace("/(\w*)(<a href='.+'>.+<\/a>(\w*))/Uis","\${1}<li>\${2}</li>",$str);楼主试试
      

  4.   

    str_replace()就是替换字符串里固定的部分,lz的要求这个应该就可以,可以试下echo str_replace(array("<a href","</a>"),array("<li><a href","</a></li>"),$str); ereg_replace和preg_replace都是正则表达式替换,“preg_replace() 函数使用了 Perl 兼容正则表达式语法,通常是比 ereg_replace() 更快的替代方案”。可以试下5L的。
      

  5.   

    这样?
    <?php
    $str="<a href='1-4.html'>4 </a><a href='1-22.html'>2323 </a>";
    $reg='/(<a .+?<\/a>)/i';
    echo preg_replace($reg, '<li>$1</li>', $str);
    ?>
      

  6.   

    $str=preg_replace("/<a\s+[^>]*>[^<]*<\/a>/i","<li>\\0</li>",$str);