<html>
<head><title>php获取网页里的所有超链接</title></head>
<body>
<a href="./">返回列表</a><br>
<form action="<?php echo $PHP_SELF;?>" method="post">
URL:<input type="text" name="url" value="<?php echo $url?>"><input type="submit" value="获取所有裢接">
</form>
<?php 
if(isset($url)){
    echo "$url 有下列裢接:<br>";
    $fcontents = file($url);
    while(list(,$line)=each($fcontents)){
        while(eregi((href[[:space:]]*=[[:space:]]*"?[[:alnum:]:@/._-]+"?)(.*),$line,$regs)){
            $regs[1] = eregi_replace((href[[:space:]]*=[[:space:]]*"?)([[:alnum:]:@/._-]+)("?),"\2",$regs[1]);
            echo "    $regs[1]<br>";
            $line = $regs[2];
        }
    }
}
?>
</body>
</html>PHP Parse error: syntax error, unexpected '[' in E:\PHP100.COM\PHPtest\test.php on line 13 
环境:IIS6.0 + FastCGI + php版本5.3.8

解决方案 »

  1.   

    while(eregi((href[[:space:]]*=[[:space:]]*"?[[:alnum:]:@/._-]+"?)(.*),$line,$regs)){
    $regs[1] = eregi_replace((href[[:space:]]*=[[:space:]]*"?)([[:alnum:]:@/._-]+)("?),"\2",$regs[1]);这两行eregi第一个参数是一个字符串,没有用引号包含起来
      

  2.   

    还不如把你想要匹配的数据说出来,重写正则都来得快,ereg系列正则真心不想看.
      

  3.   

     while(list(,$line)=each($fcontents)){
      

  4.   

    while(list(,$line)= 
    这个点去了