我知道有几百个关于如何将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();
});
<?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?
非常感谢
答案 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