2016-08-10 13 views
1

私は最初に画像をサーバーにアップロードするアン​​ドロイドアプリケーションを作成しています。サーバー側では、PHPからPythonスクリプトを実行します。しかし、私は出力を得ていません。コマンドプロンプトからPythonスクリプトにアクセスし、python TestCode.pyを実行すると、正常に実行され、目的の出力が得られます。私は、次のコマンドを使用してPHPからPythonスクリプトを実行している:PHPからのPythonスクリプトの実行

$result = exec('/usr/bin/python /var/www/html/Source/TestCode.py');

echo $result

しかし、私はそれが動作するPHPから簡単なPythonプログラムを実行する場合。

PHPには、ファイルにアクセスして実行する権限があります。

ここには何かがありますか? exec

+0

幹部は、それ自体で印刷されません、それは*リターン*出力の最後の行をうか(提供された場合)、第2パラメータに出力のすべての行を入れます$結果をエコーo/ – Jakumi

+1

私はそれを修正しましたが、それでも問題はあります。助言がありますか?? –

+0

いつもstderrとstdoutの違いを知っていますか?私が知っている限り、execはstdoutだけを扱うからです。 testcode.pyがstderr出力しか生成しない場合は、何も表示されません。 – Jakumi

答えて

3
exec('/usr/bin/python /var/www/html/Source/TestCode.py', $output); 

var_dump($output); 

第二パラメータは、出力に

EDITを与える:

exec('/usr/bin/python /var/www/html/Source/TestCode.py 2>&1', $output); 

2>&1からstdoutstderrをリダイレクトします。エラーが発生した場合は、$outputが入力されます。

+1

私は 'array(0){}'という出力を受け取りました。これは配列が空であることを意味しますが、Pythonスクリプトを実行しているときに出力が得られます。 –

+0

@AshutoshSinglaが更新されました。 – Jigar

1
  1. 最初に "which python"コマンドを使ってpython PATHを確認し、結果が/ usr/bin/pythonであることを確認してください。あなたが#!は/ usr/binに/ bashのでそれを置き換えるよりも、#!/ usr/bin/shを書かれている場合

  2. は、あなたの "TestCode.py" を確認してください。

  3. これらのコマンドを実行するよりも exec( '/ usr/bin/python /var/www/html/Source/TestCode.py'、$ result);マニュアルページと同じように は、

+1

出力が出なかった。 –

+1

あなたのTestCode.pyファイルを送信してください。 –

関連する問題