【问题标题】:Casperjs script returns null in phpCasperjs脚本在php中返回null
【发布时间】:2017-12-09 16:28:52
【问题描述】:

我是 casperjs 和 phantomjs 世界的新蜜蜂。 当我在 cmd 中得到响应时,每当我从 PHP 脚本运行时,我都会从脚本中获取 null。

这是我调用名为 Test.js 的 casperjs 脚本的 php 脚本

<?php

    putenv("PHANTOMJS_EXECUTABLE=C:/phantomjs/bin");
    putenv("DYLD_LIBRARY_PATH");

    $response=null;
    $response=exec('C:/casperjs/bin C:/Test.js');
    if ($response != null) {
        echo("Null Response");
    }
    else{
        echo("Response : " . $response );
    } ?>

这是 Test.js。一个 casperjs 脚本

var casper = require('casper').create({
verbose: false,
logLevel: "debug",
pageSettings: {
    loadImages: false,
    loadPlugins: false,
    userAgent: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0'
} });
casper.start('https://www.google.co.in/', function(){
    this.echo("From Script",'INFO')
});
casper.run();

如您所见,我已经在 c: 中安装了 phantom 和 casperjs,并且我已经为两者设置了环境变量 对于幻影环境。变量 - C:\phantomjs\bin\ 对于 Casper 环境。变量 - C:\casperjs\bin

提前谢谢你。

【问题讨论】:

标签: javascript php jquery phantomjs casperjs


【解决方案1】:

您的 PHP 应该如下所示:

$response=null;
exec('C:/casperjs/bin C:/Test.js',$response);

@Vaviloff 发布了文档页面的链接。我经常发现 PHP 的文档不够清晰,恕我直言,exec() 就是一个很好的例子。这是它显示的内容:

string exec ( string $command [, array &$output [, int &$return_var ]] )

如果您进一步阅读,您会发现它返回的字符串充其量是某些内容的最后一行。如果要测试响应,则需要初始化一个 var,然后将其引用为“回调”var(可以这么说),以便 exec 命令写回。

您也可以尝试用反引号作弊并在那里设置我们的 ENV 变量(或在用户范围内设置它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多