我正在开发一个简单的应用程序,该应用程序扫描页面上的所有URL并显示每个URls的http状态代码。当网址超过50个时,我出现错误 致命错误:超过30秒的最大执行时间 ,我所做的是,添加以下代码行{{1} }。它可以正常工作,我的问题是我必须等到完成后再显示整个结果,是否有办法使其在扫描时进行优化或显示结果。
谢谢。
代码
ini_set('max_execution_time', 300);
答案 0 :(得分:1)
PHP
同步发出http
请求。为了达到预期的结果,您应该使它们异步。我建议您使用Guzzle库。简单的异步请求如下所示:
$request = new \GuzzleHttp\Psr7\Request('GET', 'http://example.com');
$promise = $client->sendAsync($request)->then(function ($response) {
echo 'I completed! ' . $response->getBody();
});
因此,异步发出50个以上的http请求,您只需获得结果即可。
答案 1 :(得分:0)
是的,因为php需要结束显示它们的过程。只有在完成所有过程后,php才会在页面中显示结果。正如@Romeo Sierra所说的,如果它在php shell中,它将随进程一起显示。 我想您要在页面中显示它吗? 你可以做到的,
希望这会起作用。