1.需求,将网页中所有href=""内的地址处理后再放回原处,由于css的地址也是href开头和http,所以需要将<a一起匹配(网址有可能是http://www.qq.com这种形式,也有可能是http://www.qq.com/sdfsd.php?id=10&dsfs=dsf这种等等),我下面的代码,http://ygtc.tmall.com可以匹配,但是http://phny.tmall.com却不行,分析后发现后面的网址<a后多个class,下面贴上我的代码
$con=file_get_contents("http://phny.tmall.com");//或者$con=file_get_contents("http://ygtc.tmall.com");
$con=preg_replace_callback('/(<a.+?href=")([^\s"]+)/is', 'url', $con);
echo $con; 
 
function url($url){
return $url[1].'#';//这里简单处理下,作为事例,实际上要比这复杂 
}
2.求一个伪静态规则,需求:访问 http://www.abc.com/taobao/phny/ 或者http://www.abc.com/phny/ 都转向到show.php\?domain=$1,如果这个网址中有images字符串便不匹配这条规则我写的代码如下,可是却不起作用RewriteRule ([a-zA-Z\d=]+)/?$ show.php\?domain=$1

解决方案 »

  1.   


    $con=file_get_contents("http://phny.tmall.com");
    //或者$con=file_get_contents("http://ygtc.tmall.com");$con=preg_replace_callback('/<a[^>]+href="([^"]+)"/is', 'url', $con);
    echo $con; 
      
    function url($url){
    return str_replace($url[1], $url[1].'#12345', $url[0]);//
    }不知道是不是你要的效果,
    Rewrite这个没看懂
    http://www.abc.com/taobao/phny/ 转到 http://www.abc.com/show.php?domain=taobao
      

  2.   

    如果是这样
    http://www.abc.com/taobao 转到 http://www.abc.com/show.php?domain=taobao
    http://www.abc.com/taobao/phny 转到 http://www.abc.com/show.php?domain=taobao/phny那可以这样用(路径不含.就跳转)
    RewriteEngine on
    RewriteRule ^[^\.]+$ /show.php?a=$0 [R,L]
      

  3.   

    如果是这样
    http://www.abc.com/taobao 转到 http://www.abc.com/show.php?domain=taobao
    http://www.abc.com/taobao/phny 转到 http://www.abc.com/show.php?domain=taobao/phny那可以这样用(路径不含.就跳转)
    RewriteEngine on
    RewriteRule ^[^\.]+$ /show.php?a=$0 [R,L]