gpt4 book ai didi

php - 处理加载网址时出错

转载 作者:行者123 更新时间:2023-12-03 08:15:15 24 4
gpt4 key购买 nike

我正在使用一个名为Simple HTML DOM的库

其中一种方法是将url加载到DOM对象中:

function load_file()
{
$args = func_get_args();
$this->load(call_user_func_array('file_get_contents', $args), true);
// Throw an error if we can't properly load the dom.
if (($error=error_get_last())!==null) {
$this->clear();
return false;
}
}

为了测试错误处理,我创建了以下代码:
include_once 'simple_html_dom.php';
function getSimpleHtmlDomLoaded($url)
{
$html = false;
$count = 0;
while ($html === false && ($count < 10)) {
$html = new simple_html_dom();
$html->load_file($url);
if ($html === false) {
echo "Error loading url!\n";
sleep(5);
$count++;
}
}
return $html;
}

$url = "inexistent.html";
getSimpleHtmlDomLoaded($url);

这段代码背后的想法是,如果url无法加载,请重试;如果10次尝试仍然失败,则应返回false。

但是,似乎在URL不存在的情况下,load_file方法永远不会返回false。

相反,我收到以下警告消息:

PHP Warning: file_get_contents(inexisten.html): failed to open stream



任何想法如何解决这个问题?

注意:最好是我想避免侵入库中。

最佳答案

更改您的以下代码:

$html->load_file($url);
if ($html === false) {

为此:
$ret = $html->load_file($url);
if ($ret === false) {

因为您正在检查对象实例,而不是 load_file()方法的返回值。

关于php - 处理加载网址时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12563985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com