我有一个由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;
}
你可以在 php 中的响应式编程的帮助下做到这一点。您可以在其中拍摄所有请求以同时获取状态,而不是一个接一个。这反过来又可以帮助您比现在正在做的事情更快地获得响应。
想想 jquery 中的 ajax call、async-await 或 promise ?NodeJS中的事件循环。
请在下面找到链接,这些链接也可以帮助您通过深入了解该概念来实现相同的内容。
https://www.phproundtable.com/episode/asynchronous-php
https://reactphp.org/