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变量值_Javascript_Php_Json_Xpath_Web - Fatal编程技术网

从网页获取JavaScript变量值

从网页获取JavaScript变量值,javascript,php,json,xpath,web,Javascript,Php,Json,Xpath,Web,在php程序中,我在$page变量中有一个网页 ... $page = file_get_contents("http://www.autostrade.it/autostrade-gis/gis.do", false, $context); $dom = new DOMDocument; $dom->loadHTML($); $xpath = new DOMXPath($dom); ... 在这个页面中有一些javascript,我想获取变量evtsVar中包含的json数据 ...

在php程序中,我在$page变量中有一个网页

...
$page = file_get_contents("http://www.autostrade.it/autostrade-gis/gis.do", false, $context);

$dom = new DOMDocument;
$dom->loadHTML($);
$xpath = new DOMXPath($dom);
...
在这个页面中有一些javascript,我想获取变量evtsVar中包含的json数据

...
<script ...>
    ...
</script>
<script ...>
    ...
    var evtsVar = {json data}
    ...
</script>
使用Xpath查询是正确的方法吗?如何获取此变量值


谢谢大家,我的英语很抱歉。

这是一个关于某个页面的非常具体的问题。我已经分析了您提供链接的页面。脚本标记中有一个变量。你想在JSON中得到它

我已经使用jquery作为解决方案,强烈建议您也使用jquery

首先获取页面:

<?

$page = file_get_contents("http://www.autostrade.it/autostrade-gis/gis.do", false, $context);

?>
现在将字符串解析为json对象并打印:

var evtsVar = JSON.parse( evtsString );

console.log( evtsVar );

已测试,正常工作。

您是否正在尝试从javascript到php脚本访问jsondata?否。我如何访问ti json数据?是的,您希望正确使用json数据。。如果你想在php端使用它,你需要ajax如果你想在客户端访问它,你可以做到这一点,没有任何问题。如果它的内容在客户端呈现,你不能在服务器加载中获取它的值如果你查看了他提供的页面的源代码,你可以看到javascript变量evtsVar。我以为他想将该参数作为JSON对象获取,并提供了以下答案。如果我在php中使用字符串上的搜索函数在变量$page中进行搜索,情况也是一样的?indexOf类似于搜索函数。这是个问题吗?您是否在您的平台中测试了上述代码?确切地说,我使用'strpos'php函数在变量$page中搜索字符串var=evtsVar。它似乎与您的方法相同。你的代码可以工作。我想知道是否有这样一种方法,用于使用xpath查询生成HTML元素。
var preString = "var evtsVar = ";
var postString = ";";
var preIndex = page.indexOf( preString );
var searchIndex = preIndex + page.substring( preIndex ).indexOf( postString );

var evtsString = page.slice( preIndex + preString.length , searchIndex );
var evtsVar = JSON.parse( evtsString );

console.log( evtsVar );