dplm47571
dplm47571
2014-06-06 02:42

将数据从CasperJS脚本发送到PHP

已采纳

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.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • duanmu5641 duanmu5641 7年前

    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;
    
    点赞 评论 复制链接分享
  • dongmu1951 dongmu1951 7年前

    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);
    
    点赞 评论 复制链接分享