来自使用jQuery innerHTML的页面的PHP file_get_contents

时间:2015-04-25 01:16:24

标签: javascript php jquery html

我有两个文件,一个名为 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而不是位置值,所以我猜这是问题所在?

有没有工作或更好的方法来做到这一点?

1 个答案:

答案 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