PHPシステムプログラムの実行関数(system、passthru、exec)の簡易解析(コード付き)
この記事では、PHPのシステムプログラム実行関数(system, passthru, exec)の簡単な解析を紹介します(コード付き)。一定の参考価値があります。困っている友人の参考になれば幸いです。あなたに、助けられました。
exec — 外部プログラムを実行します
string exec ( string $command [, array &$output [, int &$return_var ]] )
例
<?php echo exec("ls",$output); echo "</br>"; print_r($file); ?>
実行結果:
test.php
Array([0] =>index.php [1] =>test.php)
分析:
exec は実行結果を積極的に返さず、結果の最後の行のみを返します;
完全な結果を取得したい場合は、それを出力するための 2 番目のパラメーターが必要です。配列内のこの 1 つのレコードは出力行を表し、異なるシステム外部コマンドが繰り返し実行されると、混乱を避けるために各システム外部コマンドの結果を出力するときに unset() 配列がクリアされます。パラメータはコマンドの実行を取得するために使用されます。実行が成功した場合、ステータス コードは通常 0 を返します。
passthru — 外部プログラムを実行し、生の出力を表示します
void passthru ( string $command [, int &$return_var ] )例<?php passthru("ls"); ?>
exec() 関数と同様に、外部の実行にも使用されます。コマンドを実行しますが、直接結果はブラウザに出力されます (処理を行わない生の出力)。戻り値はありません。
バイナリ データを出力する必要があり、直接ブラウザに送信する必要がある場合など、この関数を使用します。 Command;
system — 外部プログラムを実行し、出力を表示します
string system ( string $command [, int &$return_var ] )<?php system('ls', $retval); ?>
結果をブラウザに直接出力します;
2 番目のパラメータは、外部コマンドが実行された後の戻りステータスです;
成功した場合、コマンド出力の最後の行は次のようになります。失敗した場合は FALSE が返されます;
PHP がサーバー モジュールで実行され、system() 関数も出力の各行の後に Web サーバーの出力キャッシュを自動的に更新しようとする場合。
shell_exec — シェル環境を通じてコマンドを実行し、完全な出力を文字列として返します。
説明string shell_exec (string $cmd)
バッククォート演算子「`」は、関数shell_exec()と同じ効果があります。
shell_exec の戻り値
プロセス実行中にエラーが発生した場合や、プロセスが出力しない場合には NULL が返されるため、この関数を使用しても戻り値によってプロセスが正常に実行されたかどうかを知ることはできません。プロセス実行の終了コードを確認する必要がある場合は、exec() 関数を使用します。
<?php $output = `ls -al`; echo "<pre class="brush:php;toolbar:false">$output"; ?>
バックティック演算子は、セーフ モードがアクティブになっている場合、またはshell_exec() がオフになっている場合は効果がありません。
他の一部の言語とは異なり、二重引用符で囲まれた文字列ではバッククォートを使用できません。
PHP がセーフ モードで実行されている場合、この関数は使用できません。
<?php $output = shell_exec('ls -lart'); echo "<pre class="brush:php;toolbar:false">$output"; ?>
escapeshellargDescription
stringscapeshellarg (string $arg)
escapeshellarg() は文字列に一重引用符を追加し、既存の文字列を引用またはエスケープできます。一重引用符の存在により、文字列をシェル関数に直接渡すことができ、安全であることが保証されます。この関数は、ユーザーが入力した一部のパラメータに使用する必要があります。シェル関数には、exec()、system() 実行演算子が含まれます。
arg
トランスコードする必要があるパラメータ。
変換後の文字列。
<?php system('ls '.escapeshellarg($dir)); ?>
escapeshellcmd説明
string escapeshellcmd (string $command)
escapeshellcmd() は文字列内のシェル コマンドを偽装する可能性があります エスケープ文字任意のコマンドを実行します。この関数は、ユーザーが入力したデータが exec() 関数または system() 関数、あるいは実行オペレーターに渡される前にエスケープされることを保証します。
パラメータ
コマンド
エスケープするコマンド。
エスケープされた文字列。
<?php // 我们故意允许任意数量的参数 $command = './configure '.$_POST['configure_options']; $escaped_command = escapeshellcmd($command); system($escaped_command); ?>
escapeshellcmd()は完全なコマンド文字列に対して使用する必要があります。任意の数のパラメータを渡すこともできます。単一のパラメータをエスケープするには、escapeshellarg() 関数を使用してください。
php の _get メソッドと _set メソッドのアクセス方法コード例
以上がPHPシステムプログラムの実行関数(system、passthru、exec)の簡易解析(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホット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)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。
