我有两个文件,一个名为 location.php ,来源于此处:http://jsfiddle.net/g25y68kb/使用innerHTML显示来自Google Map API的位置,我打算用星号(*)分隔
我正在尝试将此页面的结果放入PHP数组中,这是我尝试过的:
<?php
$url = "location.php";
$lines = file_get_contents($url);
print_r ( explode( '*', $lines ) );
?>
返回:
Array( [0] => )
但是,当删除explode并使用print_r($lines);
时,它会像上面的JSFiddle一样正确返回,如:
Emirates Stadium, Hornsey Road, London, United Kingdom*Stadium Residential, London, United Kingdom*stadium near London, United Kingdom*Olympic Stadium, London, United Kingdom*Fulham Taxis/Stadium Car Minicab Services, Fulham Road, London, United Kingdom*
虽然,当我查看源代码时,显然我只能看到来自innerHTML的JavaScript而不是位置值,所以我猜这是问题所在?
有没有工作或更好的方法来做到这一点?
答案 0 :(得分:1)
所有JS代码都在浏览器上下文中解释,在客户端计算机的内存中。这就是您的Web服务器中包含上下文的PHP代码无法访问此数据的原因。
你可以设置一个包含结果的数组,并通过像这样的ajax传递给你的php脚本:
var resultList = [];
for (var i = 0, prediction; prediction = predictions[i]; i++) {
results.innerHTML += prediction.description + '*';
resultList.push(prediction.description);
}
$.post( "test.php", { 'results': resultList} );
在test.php中,您可以eval var $_POST['results']
来获取json列表。
或许你可以像@adeneo一样使用带有无头浏览器的自动化框架,例如PhantomJS