所以我试图通过curl和简单的HTML dom从这个网页https://promo.pan.com.hr获取一些信息。但不幸的是,我一直收到错误,我无法弄清楚出了什么问题......
<?php
include_once("simple_html_dom.php");
function file_get_contents_curl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$html = file_get_contents_curl("https://promo.pan.com.hr");
foreach($html->find("p") as $element)
echo $element->innertext . '<br>';
?>
任何人都知道我为什么会收到此错误?
致命错误:未捕获错误:在C:\ Server \ XAMPP \ htdocs \ pan \ index.php中调用字符串上的成员函数find():21堆栈跟踪:在C:\ Server中抛出#0 {main}第21行\ XAMPP \ htdocs \ pan \ index.php
第21行是:
foreach($html->find("p") as $element)
答案 0 :(得分:0)
我认为file_get_contents_curl
是在调用之上返回$data
的函数。
您的问题是[curl_exec][1]
返回一个字符串,该字符串是网页的内容。我假设您正在使用simple_html_dom
,在这种情况下,您需要首先将该字符串转换为simple_html_dom
对象:
$html = str_get_html(file_get_contents_curl("https://promo.pan.com.hr"));
或者您可以使用:
$html = file_get_html("https://promo.pan.com.hr");
并完全避免卷曲。