Неустранимая ошибка: необработанная ошибка: вызов функции-члена find () для строки при анализе данных - PullRequest
0 голосов
/ 28 апреля 2018

Так что я пытаюсь получить некоторую информацию с этой веб-страницы https://promo.pan.com.hr с помощью curl и простого HTML-кода. Но, к сожалению, я получаю сообщение об ошибке и не могу понять, что не так ...

<?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>';
?>

Кто-нибудь знает, почему я получаю эту ошибку?

Неустранимая ошибка: необученная ошибка: вызов функции-члена find () для строки в C: \ Server \ XAMPP \ htdocs \ pan \ index.php: 21 Трассировка стека: # 0 {main}, брошенный в C: \ Server \ XAMPP \ htdocs \ pan \ index.php в строке 21

строка 21:

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

1 Ответ

0 голосов
/ 28 апреля 2018

Полагаю, 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");

и избегайте скручивания.

...