我是PHP的新手,所以我想知道是否有人可以帮助我。
我使用大量的工作制作了一个剧本,即使很难,但这很简单,但我只是很糟糕。
但是,如果我的网站已启用,则此脚本会显示它。
但是如果它没有加载它就需要花费一百万个小时才能说出来。
如何设置脚本的最长时间?
非常感谢你
(我已经在Stack Overflow上搜索了很多解决方案,我找到的所有答案都不清楚或者不适合我。)
<?php
$host = '127.0.0.1';
$ports = array(3000, 80);
foreach ($ports as $port)
{
$connection = @fsockopen($host, $port);
if (is_resource($connection))
{
if($port == 80)
{
echo "web: ONLINE";
}
if($port == 3000)
{
echo 'client: ONLINE';
}
fclose($connection);
}
else
{
echo '<h2>' . $host . ':' . $port . ' is not responding.</h2>' . "\n";
}
}
?>
答案 0 :(得分:1)
您可以在5th argument of the fsockopen
function:
$connection = @fsockopen($host, $port, $errno, $errstr, 10); // timeout at 10 seconds
附注,通过传递$errno
和$errstr
,您现在可以检索并随后在错误中输出更多细节:
echo '<h2>' . $host . ':' . $port . ' is not responding.</h2>' . "\r\n";
echo '<p>Error Number ' . $errno . ': ' . $errstr . '</p>'."\r\n";
答案 1 :(得分:1)
快速查看documentation,您会看到:参数5 float $timeout
能够做到这一点。
您还应该检查$connection
是否为false
。如果已达到超时,或者发生任何其他错误,则会发生这种情况。