通过如下代码获取到网页的内容$conn=file_get_contents("http://ygtc.tmall.com");然后将里面的所有带有http://的网址通过foo()函数处理后,放回原处,最后输出网页
foo()函数如下function foo($url)}
//$url为传入的网址
return md5($url);//这里只是简单写了下函数的处理方式,实际上处理方式不是这么简单,只是作为事例;
}

解决方案 »

  1.   

    <?php
    $str="http://ygtc.tmall.comlfdkaslfjaldsfakldfladsfladshttp://ygtc.tmall.net,http://ygtc.tmall.com.cn";
    preg_match_all("/http:\/\/(.+)\.(.+)\.(com\.cn|net\.cn|com|net)/U",$str,$arr);
    print_r($arr);
    ?>
    不知道是不是你说的要求,注意这里的com\.cn|net\.cn|com|net  com.cn这样结尾的要放到com之前,不然就直接匹配com的了,希望高手能帮忙修正这个问题
      

  2.   

    这样不中啊,有的网址是这样的 http://www.qq.com/afds.htm?id=455 这样的就无法匹配了,而且要求匹配的网址中不能包含.css字符串
      

  3.   

    我想你是要替换a标签里面的href地址吧,排除link标签就是了。
      

  4.   


    代码如何写呢 只提取href的""内的内容且不包含.css字符串
      

  5.   

    $conn = file_get_contents("http://ygtc.tmall.com");
    echo preg_replace_callback('/(<a.+?href=")([^\s"]+)/is', 'foo', $conn);function foo($url) {
      return $url[1] . md5($url[2]);//这里只是简单写了下函数的处理方式,实际上处理方式不是这么简单,只是作为事例;
    }
      

  6.   


    如果这个网址里有view_page 这个字符串 便不提取,正则该如何改呢
      

  7.   


    如果这个网址里有view_page 这个字符串 便不提取或者 只提取包含view_page 这个字符串的网址,正则该如何改呢
      

  8.   

    $conn = file_get_contents("http://ygtc.tmall.com");
    echo preg_replace_callback('/(<a.+?href=")([^\s"]+)/is', 'foo', $conn);
     
    function foo($url) {
      return $url[1] . md5($url[2]);//这里只是简单写了下函数的处理方式,实际上处理方式不是这么简单,只是作为事例;
    }