如何处理simple_html_dom load_file 超时的问题?
我用simple_html_dom 爬取网页,用的面向对象方式,但是会出现超时的情况。
<code>set_time_limit(10000); ini_set('default_socket_timeout', 5); $context = stream_context_create( array( 'http'=>array( 'method' => 'GET', 'timeout' => 5 ), ) ); $shd->load_file($player_url, false, $contex); </code>
我用上面的代码做限时处理,可是不起作用。当时间超过10000秒时会退出脚本,但是我希望一条请求超时后会终止这条请求,然后重新发起请求或进行下一条请求。大神有好的办法么?
回复内容:
我用simple_html_dom 爬取网页,用的面向对象方式,但是会出现超时的情况。
<code>set_time_limit(10000); ini_set('default_socket_timeout', 5); $context = stream_context_create( array( 'http'=>array( 'method' => 'GET', 'timeout' => 5 ), ) ); $shd->load_file($player_url, false, $contex); </code>
我用上面的代码做限时处理,可是不起作用。当时间超过10000秒时会退出脚本,但是我希望一条请求超时后会终止这条请求,然后重新发起请求或进行下一条请求。大神有好的办法么?
不要直接使用它提供的接口获取网络上的内容,虽然它具备这个能力,但这也只是给你调试的时候使用的。在真实情况下很容易碰到如你问题中所述的超时情况,所以你最好先用curl
接口来获取内容,然后再用simple_html_dom
来处理这个内容,前者可以很方便地处理各种网络错误
function get_html_by_url($url, $timeout = 5) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 自动识别301跳转 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 设置各种超时限制 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); $html = curl_exec($ch); // 处理各种错误 if (false === $html) { return false; } // 处理http错误 if (200 != curl_getinfo($ch, CURLINFO_HTTP_CODE)) { return false; } return $html; } // 直接使用 $html = get_html_by_url('http://www.sina.com.cn', 5); // 用simple_html_dom加载 if (false !== $html) { $shd->load($html); }
配合set_time_limit(0);,必要时,适当增大default_socket_timeout

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

In this chapter, we are going to learn the following topics related to routing ?

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Validator can be created by adding the following two lines in the controller.
