PHP には、システム コマンドを実行するためによく使用される関数がいくつかあります_PHP チュートリアル
PHP には、system 関数、exec 関数、popen 関数、passthru、shell_exec 関数など、システム コマンドを実行するためによく使用される関数がいくつかあります。これらはすべてシステム コマンドを実行できますが、前提条件はシステムによって与えられた権限である必要があります。
システム機能
説明: 外部プログラムを実行し、出力データを表示します。
構文: string system(string command, int [return_var]);
戻り値: 文字列
詳しい紹介:
この関数は、C 言語の関数 system() に似ており、命令を実行して結果を出力するために使用されます。 return_var パラメータが存在する場合、return_var にはコマンド実行後のステータスが入ります。ユーザーが入力したデータを処理する必要があるが、ユーザーがシステムをクラックするためのトリックを行うのを防ぎたい場合は、EscapeShellCmd() を使用できることにも注意してください。 PHP がモジュール形式で実行される場合、この関数は出力の各行の後に Web サーバーの出力バッファを自動的に更新します。完全な文字列を返す必要があり、不必要な他の中間出力インターフェイスを経由したくない場合は、PassThru() を使用できます。
コード例:
コードは次のとおりです | コードをコピー |
$last_line = system("ls", $retval); 戻り値: " . $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 値が返されます。
コード例:
コードは次のとおりです | コードをコピー |
|
関数パススルーを使用して外部システムコマンドを実行します
プロトタイプ: 関数 passthru(string $command,int[optional] $return_value)
知識ポイント: パススルーとシステムの違い パススルーは値を返さずに結果をブラウザに直接出力し、画像データなどのバイナリを出力できます。
方法 4: バックティック` (および同じキー内の ~) を使用して外部システム コマンドを実行します
コードは次のとおりです | コードをコピー |
|
知識ポイント: このメソッドを使用して外部システム コマンドを実行する場合は、shell_exec 関数が使用可能であることを確認する必要があります。そうでない場合、このバックティックを使用して外部システム コマンドを実行することはできません。
安全上の注意事項
これらの関数を使用してコマンドを実行する場合、ユーザーが送信したデータに基づいてコマンドを実行する場合は、システムのセキュリティを考慮する必要があります。escapeshellcmd() 関数とscapeshellarg() 関数を使用すると、ユーザーがシステム上でコマンドを悪意をもって実行するのを防ぐことができます。 .escapeshellcmd() は実行されたシステム コマンド用であり、escapeshellarg() は実行されたシステム コマンドのパラメータ用です。これら 2 つのパラメータは、addslashes() の関数に似ています。
次に、システムコマンドを実行するカスタム関数を見てみましょう
コードは次のとおりです | コードをコピー |
関数実行($cfe) { |

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
