PHP | DOMDocument - получить данные JSON из тела

Я пытаюсь получить заголовок документа из тела с помощью DOMDocument

e-g "document_title": "Гайки и болты для программирования iOS",

Результатом этого кода является то, что я получаю нулевое значение в переменной $ doc_name .. Я хочу, чтобы результат был "iOS Programming Nuts and bolts"

Редактировать : Я пытаюсь получить данные json из источника html (например, document_description, document_title и т. д.)

Исходный код:

PHP | DOMDocument - получить данные JSON из тела

это пока что у меня есть

Пожалуйста, помогите друзьям ..

<?php 

$doc_url = "https://www.scribd.com/book/281016724/iOS-Programming-Nuts-and-bolts";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "$doc_url");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($http= = "200") {
  $doc = new DOMDocument();
  $doc->loadHTML(htmlspecialchars($result));
  $xpath = new DOMXPath($doc);
  $js = $xpath->query('//body/script[@type = "text/javascript"]')->item(0)->nodeValue;
  $start = strpos($js, '{');
  $end = strrpos($js, '),');
  $json = substr($js, $start, $end - $start);
  $data = json_decode($json, true);
  $doc_name = $data["document_title"];
}
else
{
    echo "ERROR";
}

?>    

Добро пожаловать. К сожалению, вы не определили конкретную проблему, какие-либо ошибки или что работает, а что не работает, как указано в Как спросить. Из-за этого кому-либо очень сложно понять, с чем вам нужна конкретная помощь.

charlietfl 04.08.2018 13:57

Неясно, пытаетесь ли вы получить страницу json или html. Указанный вами URL-адрес является HTML-страницей. Если вы пытаетесь получить заголовок html-страницы, вы можете использовать строковые функции php (у вас есть некоторые strrpos () и substr ()) для анализа документа, но почему вы затем декодируете json, неясно. Какую страницу и тип страницы вы извлекаете?

garrettlynchirl 04.08.2018 15:49

Есть несколько <script type = "text/javascript">, но вы просто берете ->item(0) вслепую и предполагаете, что это правильный.

Niet the Dark Absol 04.08.2018 16:19

Честно говоря, вы, вероятно, могли бы просто повторно выразить весь документ для /"document_title":"(.*?)"/, возможно, с некоторыми дополнительными причудами, чтобы учесть экранированные кавычки в заголовке.

Niet the Dark Absol 04.08.2018 16:20

@Rahul Rajeev попробуйте код xpath //h1[@class = "document_title"] ... xpath не работает, найдите скрипты (javascript), просто html или xml.

KingRider 08.11.2019 19:04
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
664
0

Другие вопросы по теме