2016-03-22 6 views
2

動作しないスクリプトは、私は、PHP上でこのスクリプトを実行しているPhantomjs

var page = require("webpage").create(); 


page.open("http://livescore.in/", function (status) { 
    if (status !== 'success') { 
     console.log('Unable to load the address!'); 
     phantom.exit(); 
    } else { 
     window.setTimeout(function() { 
      console.log(page.content); 
      phantom.exit(); 
     }, 5000); 
    } 
}); 

PHPファイル、phantom.js、script.jsは同じフォルダにあります。

PhantomJSバージョン - 2.2.1

その結果、スクリプトが無期限にロードされます。

+0

'\のscript'は何ですか?私は 'script'か' \\ script'を期待していますが、 '\ script'は期待していません。 –

+0

phpの代わりにターミナルからスクリプトを実行しているときにスクリプトが正しく動作しますか?そうでなければ、一度に1つの問題に取り組むべきです。 –

答えて

0

問題の原因は、おそらく不正なファイルパスです。あなたの場合の最も簡単な解決策は、phantomjsバイナリとスクリプトへのフルパスを設定することです。そのコマンドの出力がで使用する必要のあるパスがある

pwd 

コマンド、サーバーへのログイン作業フォルダに移動してから発行します。

<?php 
    echo $result = shell_exec("/path/to/work/folder/phantomjs /path/to/work/folder/script.js"); 
?> 

は、完全なパスを見つけるために、 shell_exec。 この方法では、パスに混乱することはなく、スクリプトは常に実行されます。しかし、私はあなたが少し時間を取って、Linuxのabsolute/relativeパスを読むことをお勧めします。

これは、すべてのファイルが同じフォルダ内にある場合にも動作するはずです:

<?php 
echo $result = shell_exec("phantomjs script.js"); 
?> 
関連する問題