$sock = fsockopen($url_parts['host'], (isset($url_parts['port']) ? (int)$url_parts['port'] : 80), $errno, $errstr, 30);
if (!$sock) return false;


我在数据库中有要访问的URL列表,有时会得到以下信息:

我收到“致命错误:超过30秒的最大执行时间...”

由于它去了站点,因此它是预期的,它不允许套接字或其他任何东西。

我如何跳过这些不良站点,以便我的脚本可以继续为其他优质站点运行?

谢谢

最佳答案

降低fsockopen()(呼叫的最后一个参数)的连接超时,当前设置为30秒。否则,PHP将等待30秒以连接到远程主机,然后由于执行时间最长而失败。

您可以根据自己的需要使用该值,但是通常可以假设如果在几秒钟内未打开该插座,则无法进行连接。

此外,您可能想使用set_time_limit()增加脚本的最大执行时间。

关于php - 我想跳过的fsockopen错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1645226/

10-10 13:57
查看更多