以下のコードを実行すると、「domainslist.txt」にリストされている最後のURLからアクセスできるWebページのみが表示されます。以前のWebページは表示されません。
たとえば、「domainslist.txt」に次のものが含まれている場合:
http://example[1].com
http://example[2].com
http://example[3].com
次に、コードはexample[3].comのWebページのみを表示します。
3つすべてが表示されないのはなぜですか?
function url_get_contents($Url) {
if (!function_exists('curl_init')) {
die('CURL is not installed!');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
$urls = file("domainslist.txt", FILE_SKIP_EMPTY_LINES);
foreach ($urls as $url) {
echo(url_get_contents($url));
}
注意:次のように、URLの配列を手動で作成する場合:
$urls = array();
$urls[0] = "http://example[1].com";
$urls[1] = "http://example[2].com";
$urls[2] = "http://example[3].com";
その後、正常に動作し、3ページすべてが表示されます。
編集:
私が使用したときvar_dump($urls);
、配列を形成する2つの異なる方法の結果にはわずかな違いがあります。を使用して作成された配列の最初の2つのURLにはfile()
、文字列の長さで報告される2つの余分な文字がありますが、最後のURL(表示されるURL)は正しい文字数です。ただし、配列を手動で作成する場合、余分な文字はありません。