我有一个由URL组成的数组,我需要检查它们的HTTP状态代码,我的问题是,显示结果花了一些时间,并且还显示了有关执行时间的错误。
有什么方法可以使检查速度更快,或者在仍然检查结果的同时逐一显示结果,您可以提出任何建议。
<?php
$arrSites = array('http://example1.com/', 'http://example2.com/', 'http://example3.com/', 'http://example4.com/', 'http://example5.com/', 'http://example6.com/', 'http://example7.com/', 'http://example8.com/',);
for($x = 0; $x < count($arrSites); $x++){
echo statusCode($arrSites[$x]);
}
function statusCode($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $httpCode;
}
答案 0 :(得分:0)
您可以借助php中的反应式编程来做到这一点。您可以在其中拍摄所有请求以同时获取状态,而不是一个接一个地获取状态。反过来,这可以帮助您更快地获得响应,然后再执行当前操作。
想想jquery中的ajax调用,async-await或promise? NodeJS中的事件循环。
请在下面找到链接,这些链接也可能有助于您深入了解该概念。