1、
eregi("href=\"(.*)\"",$url,$abc);
echo $abc[1];
改为
preg_match_all("/href=\"(.*)\"/",$url,$abc);
foreach($abc[1] as $v)
  echo "$v<br>";2、由于
while(preg_match($patt,$song,$reg)){
echo $reg[3];
}
中$patt始终都被匹配到,所以就成了死循环

解决方案 »

  1.   

    谢谢老大!
    第二个问题还是不太明白呀。
    我看他们也都是这样子的格式的。
    看这个,就不会死了。
    <?
          $f=file('http://www.sohu.com/index.html');
          $str="";
          while(list($line_num,$line)=each($f))
         {
    $str.=$line;
          }
          $count=0;
          $ptn="@(.*?)<a\s([^>]*?)href=([\'\"\s]?)([^>\'\"\s]+)([\'\"\s]?)([^>]*?)>(.+?)</a>(.*)@is";
    while(preg_match($ptn,$str,$reg))
    {
                 echo "-----------------------------------------------------------------------------------";
        $count++;
        echo "〖".$reg[4]."〗<br/>";
        echo $count."【".$reg[7]."】<br/>";
        $str=$reg[1].$reg[8];
    }
    ?>
      

  2.   

    请注意
    while(preg_match($ptn,$str,$reg))
    {
                 echo "-----------------------------------------------------------------------------------";
        $count++;
        echo "〖".$reg[4]."〗<br/>";
        echo $count."【".$reg[7]."】<br/>";
        $str=$reg[1].$reg[8]; //这里改变了初值
    }