如何写一个规则 处理文章地址如:http://www.csdn.net/beijing/a/123.html 处理成 http://beijing.csdn.net/a/123.htmlIIRF

解决方案 »

  1.   

    $url = 'http://www.csdn.net/beijing/a/123.html';
    $r = '/(http:\/\/)www(\.csdn\.net\/)(beijing)\/(a\/123\.html)/i';
    $s = '\1\3\2\4';
    $url = preg_replace($r, $s, $url);
    echo $url;
    /*
    输出:http://beijing.csdn.net/a/123.html
    */
      

  2.   

    $url = 'http://www.csdn.net/beijing/a/123.html';
    $r = '/(http:\/\/)www(\.\w+\.\w+\/)(\w+)\/(\w+\/\w+\.\w+)/i';
    $s = '\1\3\2\4';
    $url = preg_replace($r, $s, $url);
    echo $url;
    /*
    输出:http://beijing.csdn.net/a/123.html
    */
      

  3.   

    修改一下三楼的代码 更通用一点
    $url = 'http://www.csdn.net/shanghai/a/123.html';
    $r = '/(http:\/\/)www([\w|\.]*\/)(\w*)\/([\w|\/|\.]*)/i';
    $s = '\1\3\2\4';
    $url = preg_replace($r, $s, $url);
    echo $url;
      

  4.   

    其实我想 写成IIRF伪静态规则的,能不再写一个啊?求教