将数据从CasperJS脚本发送到PHP

时间:2014-06-06 02:42:33

标签: javascript php json casperjs

我正试图从CasperJS获取数据:

file.php的内容:

$casperjs = "casperjs";
$script = 'add_site.js';
$arg0 = $_POST['new_site'];  
$command = "$casperjs $script $arg0";
$result = shell_exec($command);
echo $result;

casperjs.js的内容:

casper.then(function() {
  // some code
  utils.dump(JSON.stringify(site));
});
casper.run(function() {
  this.exit();
});

我的输出没什么。

2 个答案:

答案 0 :(得分:0)

CasperJS不是100%,但是看看你的PHP代码,试试在你的脚本中使用json_encode,如下所示:

$casperjs = "casperjs";
$script = 'add_site.js';
$arg0 = $_POST['new_site'];  
$command = "$casperjs $script $arg0";
$result = shell_exec($command);
echo json_encode($result);

还尝试为输出设置显式JSON标头,如下所示:

$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;

答案 1 :(得分:0)

我遇到了casperjs的问题。

PHP必须如此:

$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);