PHP file_get_contents来自使用 jQuery innerHTML 的页面



我有两个文件,一个名为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] => )

但是,当删除爆炸并仅使用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*

虽然,当我查看源代码时,显然我只能看到 JavaScript 而不是来自 innerHTML 的位置值,所以我猜这就是问题所在?

有没有解决方法或更好的方法可以做到这一点?

所有 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} );

在测试中.php你可以评估 var $_POST['results'] 来获取 json 列表。

或者,也许你可以像@adeneo一样,使用带有无头浏览器的自动化框架,如PhantomJS。

最新更新