我有一个代码,它会使用PHP DomDocument从网站中删除一些数据。但是,我想指定超时持续时间。有没有办法这样做?
我拥有的代码是这样的:
<?php
$grep = new DoMDocument();
@$grep->loadHTMLFile("http://www.example.com");
$finder = new DomXPath($grep);
$class = "Cat";
$nodes = $finder->query("//*[contains(@class, '$class')]");
foreach ($nodes as $node)
{
//coding
}
?>
谢谢!
答案 0 :(得分:0)
或者,您可以使用fil_get_contents()
并设置超时持续时间,然后将返回值提供给DOMDocument类:
$context = stream_context_create(array(
'http' => array('timeout' => 60), // 60 seconds
));
$html_page = file_get_contents('http://www.example.com', false, $context);
$grep = new DoMDocument();
@$grep->loadHTML($html_page);
$finder = new DomXPath($grep);
$class = "Cat";
$nodes = $finder->query("//*[contains(@class, '$class')]");
答案 1 :(得分:0)
函数 libxml_set_streams_context()
可用于“为下一个 libxml 文档加载或写入设置流上下文”。
$opts = [
'http' => [
'timeout' => 10, // 10 seconds
]
];
$context = stream_context_create($opts);
libxml_set_streams_context($context);
$grep = new DoMDocument();
$grep->loadHTMLFile("https://www.example.com");