簡體   English   中英

Casperjs腳本在php中返回null

[英]Casperjs script returns null in php

我是casperjs和phantomjs世界中的一只新蜜蜂。 每當我在cmd中獲得響應時,無論何時從PHP腳本運行,我都會從腳本獲取null。

這是我稱為casperjs的腳本,名為Test.js的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,並且已經為For phantom Env設置了環境變量。 變量-C:\\ phantomjs \\ bin \\對於Casper Env。 變量-C:\\ casperjs \\ bin

先感謝您。

您的PHP應該如下所示:

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

@Vaviloff發布了指向文檔頁面的鏈接。 我經常發現PHP的文檔不夠清晰,恕我直言,exec()就是一個很好的例子。 這是顯示的內容:

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

如果進一步閱讀,您會發現它返回的字符串充其量只是某些內容的最后一行。 如果要測試響應,則需要初始化一個var,然后將exec命令寫回作為“回調”變量(可以這么說)。

您也可以嘗試反引號作弊,並在此處設置我們的ENV變量(或在用戶范圍內進行設置)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM