php - fsockopen 错误我想跳过

标签 php mysql fsockopen

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

我在我的数据库中列出了我正在访问的 url,偶尔我会得到这个:

我收到“ fatal error :超过 30 秒的最长执行时间...”

这是预期的,因为它进入该站点,不允许套接字或其他东西。

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

谢谢

最佳答案

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

您可以使用该值来满足您的需要,但通常您可以假设如果套接字在几秒钟内未打开则无法建立连接。

此外,您可能希望使用 set_time_limit() 来增加脚本的最长执行时间。

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

相关文章:

php - wpdb->query UPDATE 查询不起作用

php - 由于条件关系,在 null 上调用成员函数 addEagerConstraints()

php - Drupal View - 如何使用 "Rewrite the output of this field"删除字符串模式?

php - 如何让 ajax 评论系统从不同的目录工作?

mysql - 如何在同一个表中正确组织历史数据?

php - HTTP header "Content-type: multipart/mixed"导致 "400 Bad request"

MySQL CASE 和 INNER JOIN 在一起?

php - 如何优化这个 mysql 查询?脚本发布

php - 在 php 中使用 fsockopen 与 gmail imap 服务器通信时出现问题

php - 使用代理 IP 地址从 PHPMailer 发送电子邮件