ホームページ > バックエンド開発 > PHPチュートリアル > PHP が Linux システム コマンドを実行する_PHP チュートリアル

PHP が Linux システム コマンドを実行する_PHP チュートリアル

WBOY
リリース: 2016-07-21 14:52:32
オリジナル
1212 人が閲覧しました

まず最初に、Linux システムコマンドを実行するための PHP の基本的な機能をいくつか紹介したいと思います。長い間、私は次の関数の具体的な使い方の違いが分かりませんでした。

システム機能
説明: 外部プログラムを実行し、出力データを表示します。
構文: string system(string command, int [return_var]);
戻り値: 文字列

詳しい紹介:
この関数は、C 言語の関数 system() に似ており、命令を実行して結果を出力するために使用されます。 return_var パラメータが存在する場合、return_var にはコマンド実行後のステータスが入ります。ユーザーが入力したデータを処理する必要があるが、ユーザーがシステムをクラックするためのトリックを行うのを防ぎたい場合は、EscapeShellCmd() を使用できることにも注意してください。 PHP がモジュール形式で実行される場合、この関数は出力の各行の後に Web サーバーの出力バッファを自動的に更新します。完全な文字列を返す必要があり、不必要な他の中間出力インターフェイスを経由したくない場合は、PassThru() を使用できます。

コード例:

$last_line = system('ls', $retval);
echo '出力の最後の行: ' $last_line;
echo '
戻り値: ' $retval;
?>


関数実行
説明: 外部プログラムを実行します。
構文: string exec(string コマンド, string [array], int [return_var]);
戻り値: 文字列

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

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

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

コード例:

echo exec('whoami');
?>


ポペン関数
説明: ファイルを開きます。
構文: int Popen(文字列コマンド, 文字列モード);
戻り値: 整数

詳しい紹介:
この関数はファイルを開くコマンドを実行し、ファイルはパイプラインによって処理されます。この関数で開かれたファイルは一方向 (読み取り専用または書き込み専用) のみであり、pclose() で閉じる必要があります。ファイル操作には、fgets()、fgetss()、および fputs() が使用できます。ファイルを開くときにエラーが発生した場合は、false 値が返されます。

コード例:


$fp = Popen( "/bin/ls", "r" );
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/371565.html技術記事まず最初に、Linux システム コマンドを実行するための PHP の基本的な機能をいくつか紹介します。長い間、私は次の関数の具体的な使い方の違いが分かりませんでした。システム関数の説明: 実行...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート