幻影将php变量传递给js

时间:2016-09-19 22:56:25

标签: javascript php phantomjs

我知道有几百个关于如何将php变量传递给JS的问题,但我尝试了几个解决方案,没有任何效果。

我对javascript很新,我使用phantomjs来获取外部网页的网址。

我有这个script.js

var page = require('webpage').create();
page.onError = function(msg, trace) {
  //prevent js errors from showing in page.content
  return;
};
page.open('http://www.google.com', function () {
    console.log(page.content); //page source
    phantom.exit();
});
由getweb.php调用

<?php
exec ('phantomjs script2.js ', $html);
var_dump($html) ;
?>

完美无缺。 但是,如果我想用一个php变量代替google.com它不起作用,我想(只是猜猜......)这是因为幻影不是由导航员解释的。

我试图把

    <script>
var adress = '<?php echo "http://www.google.com" ; ?>'; 
</script>

在使用

执行和更改我的脚本之前
var page = require('webpage').create();
page.onError = function(msg, trace) {
  //prevent js errors from showing in page.content
  return;
};
page.open(adress, function () {
    console.log(page.content); //page source
    phantom.exit();
});

但它只需要几个小时而不会发生任何事情。

如何将php变量传递给script.js?

非常感谢

1 个答案:

答案 0 :(得分:1)

我认为最好的办法是在使用脚本执行Phantom.JS时传入额外的参数。我不能在你的背景下测试,但尝试这样的事情。在你的PHP:

exec ('phantomjs script2.js "http://example.com/"', $html);

然后在您的JavaScript中,在console.log()上执行system.args。其中一个应该是http://example.com/。另见:http://phantomjs.org/api/system/property/args.html