如何优化获取HTTP状态代码

时间:2018-12-22 04:00:17

标签: php http-status-codes

我有一个由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;

}

1 个答案:

答案 0 :(得分:0)

您可以借助php中的反应式编程来做到这一点。您可以在其中拍摄所有请求以同时获取状态,而不是一个接一个地获取状态。反过来,这可以帮助您更快地获得响应,然后再执行当前操作。

想想jquery中的ajax调用,async-await或promise? NodeJS中的事件循环。

请在下面找到链接,这些链接也可能有助于您深入了解该概念。

https://www.phproundtable.com/episode/asynchronous-php

https://reactphp.org/