【发布时间】:2016-05-24 20:50:50
【问题描述】:
我编写了一个 PHP 脚本,它将循环大约。 500 个 URL 并检查它们的状态:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_exec($ch);
$destURL = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $destURL . " - " . $statusCode;
是否可以进一步优化,或者有更好的方法吗?
【问题讨论】:
-
看来您忘记了
curl_exec( $ch )!另一种方法可能是使用curl_multi_exec,但问题是来自curl_multi_info_read的响应不是很有用。 curl_multi_exec 允许并行处理 url,所以应该更快 -
@RamRaider 我在问题中添加了
curl_exec($ch)语句。本来就是这样的,只是忘了把它放在问题中。我也计划使用curl_multi_exec,但我不知道如何实现它,因为我需要最终有效的 URL 及其状态。 -
我玩过 curl_multi...说 curl_multi_info_read 几乎没用了