Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP | DOMDocument-从body获取JSON数据_Javascript_Php_Html_Json_Domdocument - Fatal编程技术网

Javascript PHP | DOMDocument-从body获取JSON数据

Javascript PHP | DOMDocument-从body获取JSON数据,javascript,php,html,json,domdocument,Javascript,Php,Html,Json,Domdocument,我试图做的是使用DOMDocument从body获取文档标题 例如“文件标题”:“iOS编程螺母和螺栓” 这段代码的结果是我在$doc\u name变量上得到一个空值。。我希望结果是“iOS编程螺母和螺栓” 编辑:我正在尝试从html源获取json数据(例如:文档描述、文档标题等) 源代码: 到目前为止,我已经做到了 请帮助朋友 <?php $doc_url = "https://www.scribd.com/book/281016724/iOS-Programming-Nuts-a

我试图做的是使用DOMDocument从body获取文档标题

例如“文件标题”:“iOS编程螺母和螺栓”

这段代码的结果是我在$doc\u name变量上得到一个空值。。我希望结果是“iOS编程螺母和螺栓”

编辑:我正在尝试从html源获取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";
}

?>    


欢迎光临。不幸的是,您还没有确定具体的问题、任何错误,以及中概述的哪些是有效的,哪些是无效的。这使得任何人都很难知道您需要什么特定的帮助,而不清楚您是在尝试获取json还是html页面。您指定的url是一个html页面。如果您试图获取html页面的标题,您可以使用php字符串函数(您有一些strrpos()和substr())来解析文档,但不清楚为什么要对其进行json解码。您正在检索什么页面和页面类型?有多个
,但您只是盲目地抓取
->项(0)
,并假设它是正确的。老实说,您可能只需要为
/“document\u title”注册整个文档“(.*)”/
可能还有一些额外的幻想,以允许在标题中引用转义。@Rahul Rajeev尝试代码xpath
//h1[@class=“document\u title”]
。。。xpath不适用于查找脚本(javascript),只适用于html或xml。