Fatal error: Uncaught Error: Call to a member function find() on string while parsing data

Fatal error: Uncaught Error: Call to a member function find() on string while parsing data

因此,我正在尝试使用 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:21 中字符串的成员函数 find():21 堆栈跟踪:#0 {main} 抛出在 C:\Server\XAMPP\htdocs\pan\index.php 第 21 行

第 21 行是:

foreach($html->find("p") as $element)

我假设 file_get_contents_curl 是 returns $data 调用上面的函数。

你的问题是 [curl_exec][1] returns 一个字符串,它是网页的内容。我假设您正在使用 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");

并完全避免卷曲。