doulianxi0587 2016-09-19 22:56
浏览 78
已采纳

幻影将php变量传递给js

I know there are hundreds of questions about how to pass php variable to JS but i tried a several solution and nothing worked.

I'm pretty new to javascript, i'm using phantomjs to have the URL of an external webpage.

I have this 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();
});

called by getweb.php

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

works perfect. But If i want to put a php variable in place of google.com it does not work, i guess (just guess...) it's because phantom is no interpreted by navigator.

I tried to put

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

before to execute and change my script with

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();
});

but it just take hours without nothing happening.

What can I do to pass a php variable to script.js ?

thanks a lot

  • 写回答

1条回答 默认 最新

  • doufeikuang7724 2016-09-19 23:05
    关注

    I think the best thing to do is pass in extra arguments when you execute Phantom.JS with your script. I can't test in your context, but try something like this. In your PHP:

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

    Then in your JavaScript, do a console.log() on system.args. One of them should be http://example.com/. See also: http://phantomjs.org/api/system/property/args.html

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?