<a href="{:U('focus/click',array('id'=>$ad['id']))}">click</a>
<a href="{:U('index/ace',array('id'=>$ad['id']))}">ace</a>
<a href="{:U('index/form',array('id'=>$ad['id']))}">form</a>
<a href="{:U('index/act',array('id'=>$ad['id']))}">act</a>
在一个字符串中有上述的a标签。href的值如上。问题:如何将href后面的值改变成真正url例如第一个改变后变成:/focus/click/id/13也就是说 先匹配到 {:U  } 然后再匹配到里面(值1,值2);

解决方案 »

  1.   

    你这字符串不对。里面的变量都没解析。
    $s=<<<eof
    <a href="{:U('focus/click',array('id'=>123))}">click</a>
    <a href="{:U('index/ace',array('id'=>456))}">ace</a>
    <a href="{:U('index/form',array('id'=>789))}">form</a>
    <a href="{:U('index/act',array('id'=>123))}">act</a>
    eof;
    echo preg_replace("/\{\:U\('(.*?)',array\('(.*?)'=>(.*?)\)\)\}/is","/$1/$2/$3",$s);
      

  2.   

    这貌似是thinkphp里面的U方法,根据url模式自动生成url,你找到里面的U方法就会明白它是怎么解析的了