当我运行下面的代码时,它只显示可通过“domainslist.txt”中列出的最后一个 url 访问的网页。它不显示早期的网页。
例如,如果“domainslist.txt”包含:
http://example[1].com
http://example[2].com
http://example[3].com
然后代码只显示来自 example[3].com 的网页。
为什么不显示所有三个?
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);
,形成数组的两种不同方法的结果之间存在微小差异。使用创建的数组中的前两个 URL 在file()
字符串长度中报告了两个额外的字符 - 但最终 URL(显示的 URL)是正确的字符数。但是,手动创建数组时,没有多余的字符。