2

Python で書かれたソフトウェア用に、PHP を使用してインターフェイスを設計する必要があります。現在、このソフトウェアは入力を渡すことによってコマンド ラインから使用されます。ほとんどの入力はテキスト ファイルです。一連のステップがあり、すべてのステップで Python スクリプトが呼び出されます。各ステップは入力としてテキスト ファイルを受け取り、ユーザーが決定したフォルダーに出力テキスト ファイルを生成します。私はsystem()phpを使用していますが、出力が表示されませんが、コマンドラインから同じコマンドを使用すると出力が生成されます。コマンド例:
python /software/qiime-1.4.0-release/bin/check_id_map.py -m /home/qiime/sample/Fasting_Map.txt -o /home/qiime/sample/mapping_output -v

4

3 に答える 3

2

これを試して

$script = 'software/qiime-1.4.0-release/bin/check_id_map.py -m /home/qiime/sample/Fasting_Map.txt -o /home/qiime/sample/mapping_output -v';
$a = exec($script);
于 2012-07-31T05:46:48.080 に答える
2

Windows を使用していない場合2>&1は、コマンドの最後に (stderr を stdout にリダイレクトする) を追加してみましたか?

$output = system("python /software/qiime-1.4.0-release/bin/check_id_map.py -m /home/qiime/sample/Fasting_Map.txt -o /home/qiime/sample/mapping_output -v 2>&1", $exitcode);

http://www.php.net/manual/en/function.system.php#108713から見つかりました

また、ドキュメントはそれを言います

成功するとコマンド出力の最後の行を返し、失敗すると FALSE を返します。

したがって、複数の行を取得しようとしている場合は、ファイルにリダイレクトして読み込む必要がある場合があります。

于 2012-07-31T04:46:23.897 に答える
0

system()コードを `ticks` で囲む代わりに...

機能は似ていますが、出力を返す方法が少し異なります。

于 2012-07-31T04:42:01.027 に答える