2017-12-09 17 views
0

저는 casperjs와 phantomjs에서 새로운 꿀벌입니다. cmd에서 응답을 얻는 동안 PHP 스크립트에서 실행할 때마다 스크립트에서 null이 표시됩니다.Casperjs 스크립트는 PHP에서 null을 반환합니다.

이것은 내가이 Test.js.입니다 Test.js

<?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); 
    } ?> 

이름 casperjs 스크립트라는 곳에서 PHP 스크립트입니다 나는 이미 팬텀 봉투 모두 에 대한 환경 변수를 설정하십시오 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에서 팬텀과 casperjs를 설치 한 볼 수 있듯이. 변수 - C : \ phantomjs \ bin \ Casper Env. 변수 - C : \ casperjs \ bin

감사합니다.

+1

당신은 간부의 응답이 잘못지고있어, 고정하십시오 http://php.net/manual /en/function.exec.php – Vaviloff

답변

0

귀하의 PHP는 다음과 같이한다 :

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

@Vaviloff은 문서 페이지에 대한 링크를 게시했다. 나는 종종 명확성이 부족한 PHP의 문서를 발견했습니다. IMHO ,, exec()가 중요한 사례입니다. 여기 보여줍니다 것입니다 : 당신이 더 아래로 읽으면

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

당신은 기껏해야, 그것은 반환 문자열이 볼 무언가의 마지막 줄 것입니다. 응답을 테스트하려면, var를 초기화 한 다음 exec 명령이 다시 쓸 수 있도록 'callback'var (참조)로 참조해야합니다. .

또한 시도하고 사용자 범위에 그들을 설정 역 따옴표로 속이고 우리의 ENV를 설정하면이 바르 (또는 수