2016-11-28 11 views
0

Linux上でOSコマンドを実行するためにPHPパススルー機能を使用しようとしています。PHPパススルー実行ステータス

私は以下のように使用しています。 Linuxのコマンドはちょうど私が知っているディレクトリ内のファイルを一覧表示することで存在していないとステータスは、コマンドの出力全体のようですが、私はちょうどそれが

$osexec = "ls /tp"; 
$status = 0; 

$result = passthru($osexec, $status); 

echo $status; 
ないことを確認するために、ステータスをエコーし​​ていますステータス番号を含む

ls: /tp: No such file or directory 
2 

なぜですか?

答えて

1

stderr$statusの値が表示されています。 stderrを非表示にするには、次の操作を実行します。

// 2> /dev/null to hide stderr 
$osexec = "ls /tp 2> /dev/null"; 
$status = 0; 

$result = passthru($osexec, $status); 

echo $status; 
+0

ありがとうございます。 – Trent

0

passthruは、コマンドからのすべての出力を自動的に出力します。

try echo "-------\n".$status;であり、異なるソース(パススルー/エコー)の出力が混在していることがわかります。

関連する問題