I’m trying to get data from CasperJS like this:
Contents of file.php
:
$casperjs = "casperjs";
$script = 'add_site.js';
$arg0 = $_POST['new_site'];
$command = "$casperjs $script $arg0";
$result = shell_exec($command);
echo $result;
Contents of casperjs.js
:
casper.then(function() {
// some code
utils.dump(JSON.stringify(site));
});
casper.run(function() {
this.exit();
});
I have nothing on output.
Not 100% on CasperJS, but looking at your PHP code try using json_encode
in your script like this:
$casperjs = "casperjs";
$script = 'add_site.js';
$arg0 = $_POST['new_site'];
$command = "$casperjs $script $arg0";
$result = shell_exec($command);
echo json_encode($result);
Also try setting explicit JSON headers for your output like this:
$casperjs = "casperjs";
$script = 'add_site.js';
$arg0 = $_POST['new_site'];
$command = "$casperjs $script $arg0";
$result = shell_exec($command);
$json_data = json_encode($result);
header('X-JSON: (' . $json_data . ')');
header('Content-type: application/x-json');
echo $json_data;
I had a problem with casperjs.
PHP must be so:
$casperjs = "/home/k/kreker92/casperjs/bin/casperjs";
$script = 'add_site.js';
$arg0 = $_POST['new_site'];
putenv("PHANTOMJS_EXECUTABLE=/home/k/kreker92/phantomjs/bin/phantomjs");
$command = "$casperjs $script $arg0";
$result = shell_exec($command);
$json_data = json_encode($result);