ホームページ  >  記事  >  バックエンド開発  >  PHPのexec()関数とその戻り値インスタンスの取得方法の詳細説明

PHPのexec()関数とその戻り値インスタンスの取得方法の詳細説明

伊谢尔伦
伊谢尔伦オリジナル
2017-06-27 09:24:034826ブラウズ

exec

外部プログラムを実行します。

構文: string exec(string command, string [array], int [return_var]);

戻り値: String

関数型: オペレーティングシステムと環境

内容説明

これ外部プログラムまたは外部命令入力コマンドを実行する関数です。戻り文字列は、外部プログラムの実行後に返される最後の行のみです。完全な戻り文字列が必要な場合は、PassThru() 関数を使用できます。

パラメータ配列が存在する場合、コマンドは実行のために配列をパラメータに追加します。配列を処理したくない場合は、exec() を実行する前に unset() を呼び出すことができます。 return_var と配列パラメータの両方が存在する場合、コマンド実行後のステータスが return_var に設定されます。

ユーザーが入力したデータを処理し、ユーザーがシステムをクラックするためのトリックを行うのを防ぐ必要がある場合は、EscapeShellCmd() を使用できることに注意することが重要です。

質問: exec("ping $PingDNS", $Info); の実行後に戻り値を取得するにはどうすればよいですか。この戻り値は、exec が外部プログラムの実行のみを返すことができるかどうかをマークできます。最後の一行が返ってきた、助けて! ! ! !

答え 1:

関数: passthru()
------------------------------------- --- ------------------------------------------
プログラム実行関数ライブラリ
パススルー
外部プログラムを実行し、データを加工せずに出力します。

構文: string passthru(string command, int [return_var]);

戻り値: string

関数の種類: オペレーティング システムと環境

内容の説明
この関数は Exec() に似ており、コマンドの実行に使用されます命令と出力結果。 return_var パラメータが存在する場合、return_var にはコマンド実行後のステータスが入ります。出力データがバイナリ データであり、ブラウザに出力する必要がある場合は、この関数を使用するのが非常に適切です。たとえば、pbmplus ツールを使用して命令を実行し、バイナリ グラフィック データを返します。まず、返されるデータのヘッダーを Content-type: image/gif に構成し、次に pbmplus プログラムを呼び出してグラフィック データを処理し、バイナリ グラフィック データをブラウザに直接返すことができます。

exec("ping $PingDNS", $Info);

は次の形式で文字列を返します:
x.x.x.x からの返信: bytes=32 time不正な IP アドレス Expert.csdn.NET
...
これらの文字列の内容をもとに解析することができます
また、実行過程は$Infoに保持されます

添付ファイル:

今日はフロントエンドのPHPがバックグラウンドのC: にメッセージを送信する際にこの関数を使用しました:

バックグラウンドにはユーザーの操作が必要です インターフェイスの後に操作ログを書き込んだ後、バックグラウンドにメッセージを送信する必要があります C

$juser = $_

SESSION['wms_user'];
exec("/usr/local /apam_new/bin/apam_debug -a Operate:$ juuser,1");

//以下は私のテストメソッドです:

//メッセージがバックグラウンドに送信されるかどうかを確認してください

exec("/usr/local /apam_new/bin/apam_debug -a Operate:$juser ,1",$info);

echo var_dump($info);

結果は、メッセージがバックグラウンドに送信され、バックグラウンド印刷情報が出力されることを示していますfireFox

Firebug

コラムへ 主にphpの理解を強化する exec()関数の理解です!

以上がPHPのexec()関数とその戻り値インスタンスの取得方法の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。