PHP で exec、system、およびその他の関数を使用してシステム コマンドを呼び出す方法について
この記事では、PHP で exec 関数や system 関数などを使用してシステム コマンドを呼び出す方法を主に紹介します。必要な方は参考にしてください。 ##PHP AS サーバーサイドのスクリプト言語であり、単純または複雑な動的 Web ページの作成などのタスクを完全に実行できます。ただし、常にこのようになるとは限りません。場合によっては、特定の機能を実装するために、オペレーティング システムの外部プログラム (またはコマンド) を使用する必要があります。この方法では、半分の労力で 2 倍の結果を得ることができます。
php の組み込み関数 exec および system を使用できます。システム コマンド (シェル コマンド) を呼び出すことができ、もちろん passthru、escapeshellcmd などの関数も呼び出すことができます。 多くの場合、PHP の exec、system、およびその他の関数を使用してシステム コマンドを呼び出すと、作業をより適切かつ迅速に完了できます。たとえば、2 日前に .rar ファイルをバッチ処理していたとき、exec は非常に役に立ちました。 今日は、よく使われる通話システムの機能を整理し、私の経験を皆さんと共有します。 注: これら 2 つの関数を使用する場合は、php.ini のセーフ モードをオフにする必要があります。オフにしないと、セキュリティ上の理由から、PHP ではシステム コマンドの呼び出しが許可されません。 まず、PHP マニュアルでこれら 2 つの関数の説明を見てください:exec --- 外部プログラムを実行します
構文: 文字列exec ( string command [, array &output [, int &return_var]] )
説明: exec() は指定されたコマンド command を実行しますが、何も出力せず、単にコマンドを受け取ります。コマンドを実行してコマンドからすべてのデータを取得する必要がある場合は、 passthru() 関数を使用できます。 パラメーター配列が指定されている場合、指定された配列にはコマンドによって出力された各行が埋め込まれます。 注: 配列に既に要素が含まれている場合、exec() は後でその要素を配列に追加します。この関数で要素を追加したくない場合は、配列を exec() に渡す前に unset() を呼び出すことができます。 パラメータ array と return_var が指定されている場合、実行に戻されたステータス コマンドがこの変数に書き込まれます。 注: ユーザー入力からのデータをこの関数に渡すことを許可する場合は、ユーザーがシステムを騙して任意のコマンドを実行できないようにするために、escapeshellcmd() を使用する必要があります。 注: この関数を使用してプログラムを開始し、バックグラウンドでの実行中にそのプログラムを残しておきたい場合は、プログラムの出力がファイルまたはその他の出力データにリダイレクトされていることを確認する必要があります。そうしないと、プログラムの実行が終了するまで PHP がハングします。system --- 外部プログラムを実行し、出力を表示します
構文: string system (string command [, int &return_var])
説明: system() は、指定されたコマンド command を実行し、結果を出力します。パラメータ return_var が指定されている場合、実行されたコマンドのステータス コードがこの変数に書き込まれます。 注: ユーザー入力からのデータをこの関数に渡すことを許可する場合は、ユーザーがシステムを騙して任意のコマンドを実行できないようにするために、escapeshellcmd() を使用する必要があります。 注: この関数を使用してプログラムを開始し、バックグラウンドでの実行中にそのプログラムを残しておきたい場合は、プログラムの出力がファイルまたはその他の出力データにリダイレクトされていることを確認する必要があります。そうしないと、プログラムの実行が終了するまで PHP がハングします。 PHP がサーバー モジュールとして実行されている場合、system() は各行を出力した後に Web サーバーの出力バッファを自動的にクリアしようとします。 成功した場合はコマンドの最後の行を返し、失敗した場合は false を返します。 コマンドを実行し、コマンドからすべてのデータを取得する必要がある場合は、 passthru() 関数を使用できます。 これらはどちらもシステム シェル コマンドを呼び出すために使用されます。 違いは次のとおりです。 exec はすべての実行結果を $output 関数 (配列)、$status に返すことができます。は実行ステータス、0 は成功、1 は失敗です。 システムは $output 関数を提供する必要はなく、同様に、$return_var は実行ステータス コードです。 1 は失敗です。実行例:
<?php
$a = exec("dir",$out,$status);
print_r($a);
print_r($out);
print_r($status);
?>
システムの例:
<?php $a = system("dir",$out); print_r($a); print_r($out); ?>
system() シェル結果の最後の行を出力して返します。 exec() は結果を出力せず、シェル結果の最後の行を返します。すべての結果は返された配列に保存できます。 passthru()はコマンドを呼び出すだけで、コマンドの実行結果をそのまま標準出力装置に出力します。
同じ点: コマンド実行のステータス コードを取得できます。
以上がこの記事の全内容であり、皆様の学習に役立つことを願っています。 PHP中国語ウェブサイトです!
PHPの条件を満たすすべての文字列を定期的に置換するpreg_replace()メソッドについて
PHPのfilter_var()関数とFilter関数の分析PHP
における str_replace 置換の脆弱性の分析
以上がPHP で exec、system、およびその他の関数を使用してシステム コマンドを呼び出す方法についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









php exec が実行できない問題の解決策: 1. php 設定ファイル php.ini を見つけ、ファイル内で「disable_functions」を検索し、「exec」と「shell_exec」を削除します。 2. サーバーに移動して、ファイルのアクセス許可; 3. 設定を変更する セーフ モードは「safe_mode=On」です。

Java ドキュメントの解釈: System クラスの currentTimeMillis() メソッドの使用状況分析、特定のコード例が必要 Java プログラミングでは、System クラスはシステムに関連するいくつかのプロパティと操作をカプセル化する非常に重要なクラスです。その中でも、System クラスでよく使われるメソッドである currentTimeMillis メソッドについて、コード例を示しながら詳しく説明します。 1. currentTimeMillisメソッドの概要

win10 システムは非常に使いやすく、高度なインテリジェントなシステムであり、互換性が高いため、通常の使用では基本的に問題はありませんが、win10 システムを使用し続けると、システムが不安定になることがあります。 Win10 起動時にブルー スクリーン終了コード SystemServiceException が発生する問題 今日は、Win10 起動時にブルー スクリーン終了コード SystemServiceException が発生する問題の解決策を紹介します。必要な場合は、すぐにダウンロードしてください。 win10systemserviceException ブルー スクリーンの解決策: 方法 1: 1. Windows キー + R を使用してファイル名を指定して実行を開き、「contr」と入力します。

php の実行結果が文字化けする場合の解決策: 1. 対応する PHP コード ファイルを開きます; 2. 実行時にコードを確認します; 3. 内容を "exec("python cmd.py",$str); foreach($str as $) に変更しますres){$str = iconv("GBK", "UTF-8", $res);}echo $str;"。

コンピュータ システムは比較的一般的なシステム プロセスです。プロセスを表示すると、システムが表示されることがよくあります。このプロセスは単にコンピュータ システムを意味します。ただし、system.exe プロセスがコンピュータ上に表示された場合は、適時に削除する必要があります。これはトロイの木馬ウイルスによって生成されたファイルであり、実際のシステムの背後には exe サフィックスはありません。

オブジェクトはすべての Java クラスの基本クラスであり、クラス継承構造全体の最上位であり、最も抽象的なクラスです。誰もが毎日、toString()、equals()、hashCode()、wait()、notify()、getClass() などのメソッドを使用していますが、おそらくそれらが Object のメソッドであることを認識しておらず、見向きもしません。 Object には他にどのようなメソッドがあるのか、そしてなぜこれらのメソッドを Object に配置する必要があるのかを考えてみましょう。 1. JavaObject クラスの概要 - すべてのクラスのスーパー クラス Object は Java クラス ライブラリの特別なクラスであり、すべてのクラスの親クラスでもあります。言い換えれば、Java では、任意のタイプのオブジェクトを Object タイプに割り当てることができます。

機能 説明 exec コマンドは、Linux で指定されたコマンドを呼び出して実行するために使用されます。 exec コマンドは通常、他のコマンドを実行するためにシェル スクリプトで使用されます。現在のターミナルで exec コマンドを使用する場合、指定されたコマンドは、新しい子プロセスを作成するのではなく、実行後に現在のプロセスを置き換えます。コマンド構文 exec [option] オプションの意味 オプションの意味 -c 実行には空の環境を使用します -ashell は、実行されたコマンドに名前をゼロパラメータとして渡します -l シェルの先頭にダッシュを置きます パラメータはコマンドリファレンスに渡されます 例例 1// まず、echo コマンドを使用してテキスト「www.linuxyz.cn」を出力します: [root@bunian~]#echoww

ネットユーザーは Windows 7 システムによく精通していると思いますが、Windows 7 英語版システムについて聞いたことがありますか? 多くのネットユーザーは Windows 7 英語版システムについて聞いたことがあると思いますが、Windows 7 英語版システムを探している友人もいます。ダウンロードするバージョン システム. 今日は、ネチズンが英語で win7 のオリジナル バージョンを理解できるように、編集者が英語での win7 のオリジナル バージョンの紹介を皆さんと共有するつもりです。以下は、英語版の Windows 7 システムをダウンロードする場所を示しています。 win7 のオリジナルの英語システムは、サブスクリプション ダウンロード用に MSDN にリリースされました。正式な英語統合バージョンは、統合 SP1 を含む Windows7 CD イメージである Windows7WithSP1 として最初にリリースされました。複数の言語に対応するスタンドアロン SP1 が含まれています
