我正在尝试以下方法:
$url = 'https://www.tripadvisor.es/Hotels-g187514-Madrid-Hotels.html'
$ta_html = file_get_html($url);
var_dump($ta_html);
它返回false,这是正常工作并正确获取html:
$url = 'https://www.tripadvisor.es/Hotels-g294316-Lima_Lima_Region-Hotels.html#ACCOM_OVERVIEW'
我的第一个想法是它有一个重定向,但我检查了卷曲和200的确定标题,两个案例看起来都是一样的。可能发生什么?如何解决?
这似乎是这个问题的重复: Simple HTML DOM returning false也没有答案
答案 0 :(得分:8)
似乎HTML DOM解析器失败,因为HTML文件大小大于库的最大文件大小。当您调用file_get_html()
时,它会根据其MAX_FILE_SIZE
常量进行文件大小检查。因此,在调用任何HTML DOM解析器方法之前,请通过调用以下命令增加库使用的最大文件大小:
define('MAX_FILE_SIZE', 1200000); // or larger if needed, default is 600000
正如您所发现的,您可以通过执行此操作来解决文件大小检查问题
$html = new simple_html_dom();
$html->load($str);
答案 1 :(得分:1)
所以我找到了解决方法:
let url = URL(string: "url_of_your_image")
imageView.kf.setImage(with: url)
说实话,我不知道为什么会这样,以及最初的问题是什么,如果有人能指出这一点,我将不胜感激
答案 2 :(得分:0)
由于simple_html_dom.php
功能
file_get_html()
检查,看起来这种情况正在发生
if (empty($contents) || strlen($contents) > MAX_FILE_SIZE)
{
return false;
}
内容的长度可能大于MAX_FILE_SIZE
答案 3 :(得分:0)
希望它会为您提供帮助:
$base = $url;
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_URL, $base);
curl_setopt($curl, CURLOPT_REFERER, $base);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$str = curl_exec($curl);
curl_close($curl);
$html = new simple_html_dom();
$html->load($str);
答案 4 :(得分:-1)
使用file_get_contents()
代替,对我有用。
$url = "https://www.tripadvisor.es/Hotels-g187514-Madrid-Hotels.html";
file_put_contents("hello.html", file_get_contents($url));
file_get_html("Hello_html");