Разбор JSON данных внутри от появления тега script с использованием SimpleHtmlDom - PHP - PullRequest
0 голосов
/ 17 апреля 2020

Я использую простой html dom для анализа ссылки, которая содержит два тега сценария с типом = application / ld + json.

Структура целевого веб-сайта, как показано ниже,

// tag that I want to parse
<script type="application/ld+json">
Some JSON Data
</script>


// tag that I **do not want** to parse
<script type="application/ld+json">
Some JSON Data
</script>

Теперь, как я показал выше, я просто хочу проанализировать данные внутри первого, для этого я использую следующий код

foreach($html->find('script[type="application/ld+json"]',0) as $name)
{
   echo $name->innertext;
}

Поскольку я пытаюсь извлечь первое вхождение, указав «0» в функции find (), но это дает мне следующую ошибку.

Trying to get property of non-object in C:\xampp\htdocs\htmldom\example\example_basic_selector.php on line 14

Кто-нибудь знает, что я делаю неправильно, или как я могу это исправить? Спасибо

1 Ответ

1 голос
/ 17 апреля 2020

Если вы укажете индекс нужного вам экземпляра, вы получите только этот элемент обратно, а не список, поэтому l oop не требуется (на самом деле проблема) ...

$json = $html->find('script[type="application/ld+json"]',0);
echo $json->innertext;

Просто для справки, код от find() ...

    // return nth-element or array
    if (is_null($idx)) return $found;
    else if ($idx<0) $idx = count($found) + $idx;
    return (isset($found[$idx])) ? $found[$idx] : null;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...