0

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 Answer 1

1

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

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.