我正在创建一个类来打开网页并存储页面上所有出站链接的 href 值。由于某种原因,它适用于前 3 个然后变得更奇怪。下面是我的代码:
class Crawler {
var $url;
function construct($url) {
$this->url = 'http://'.$url;
$this->crawl();
}
function crawl() {
$str = file_get_contents($this->url);
$start = 0;
for($i=0; $i<10; $i++) {
$beg = strpos($str, '<a href="http://',$start)+16;
$end = strpos($str,'"',$beg);
$diff = $end - $beg;
$links[$i] = substr($str,$beg, $diff);
$start = $start + $beg;
}
print_r($links);
}
}
$crawler = new Crawler;
$crawler->construct('www.yahoo.com');
暂时忽略 for 循环我知道这只会返回前 10 个并且不会执行整个文档。但是,如果您运行此代码,前 3 个可以正常工作,但所有其他值都是 UBLIC。任何人都可以帮忙吗?谢谢