$template = preg_replace(
            "/\<a href\=\"category\.php\?id\=(\d+)(&amp;page\=(\d+))?\"([^\>]*)\>/e",
            "rewrite_category('\\1', '\\3', '\\4')",
            $template
        );    function rewrite_category($fid, $page = 0, $extra = '') {
        return '<a href="category-'.$fid.'-'.($page ? $page : 1).'.html"'.stripslashes($extra).'>';
    }$template是模板内容可是<a href="category.php?id=xxx">这样的链接为什么没有变化呢?

解决方案 »

  1.   

    正则没问题啊id\=(\d+),纯数字才会匹配<a href="category.php?id=xxx">  测试的XXX是包含字母的话换成(\w+)
      

  2.   

    2楼。如果是XXX是$row[abc_123]这样的变量要如何匹配呢?另外他后面还可能出现$row[abc_123]&abc=ooo不能涉及到&后面的内容... = =另外还有一个小问题就是,category\.php\?id\=(\d+)是我从DZ的正则里边PASS的代码。他是如何做到在$row[abc_123] 变成实际数字后才执行的正则的呢???
      

  3.   

    (&amp;page\=(\d+))?
    1.这里不能有两个括号
    2.&amp;应该为&
      

  4.   

    楼上的,还少了数字[a-zA-Z0-9_]