Web ページを開き、ページ上のすべてのアウトバウンドリンクの 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 になります。誰でも助けることができますか?ありがとう