【问题标题】:Send data from CasperJS script to PHP将数据从 CasperJS 脚本发送到 PHP
【发布时间】:2014-06-06 02:42:33
【问题描述】:

我正在尝试从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();
});

我没有输出。

【问题讨论】:

    标签: javascript php json casperjs


    【解决方案1】:

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

    【讨论】:

    • 感谢您的决定!它开始显示输出。如果我添加标题,如果我直接启动它就会变成下载文件。但现在我有另一个问题。我有“空”输出。在 SSH 中启动 caseprjs 脚本时,我有成功输出。这可能是什么问题,或者我怎样才能找到错误所在。
    • @user3713526 不清楚如何提供帮助。这是我能做的最好的。如果这对您有所帮助,请务必投票。如果其他人有解决方案,也请投票并确保勾选答案。
    【解决方案2】:

    我遇到了 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);
    

    【讨论】:

      猜你喜欢
      • 2012-06-15
      • 2012-01-06
      • 2012-03-14
      • 1970-01-01
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      相关资源
      最近更新 更多