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");
并完全避免卷曲。
因此,我正在尝试使用 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");
并完全避免卷曲。