$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/