PHPで拡張情報を公開する方法
拡張情報の公開
拡張機能は、phpinfo()
またはリフレクション API に必要な情報を公開できます。一緒に見てみましょう。
この章は非常に簡単なので、それほど長くはなりません。
関連する学習の推奨事項: PHP プログラミングの入門から熟練度まで
MINFO() フック
宣言されれば、すべてが実行されます。宣言された MINFO()
フック内にあります。宣言されていない場合、エンジンはデフォルトの関数を実行して、拡張機能に関する情報を出力します。この関数は、拡張機能のバージョンと最終的に宣言された INI エントリのみを出力します。
このプロセスに参加したい場合は、拡張構造内で MINFO()
フックを宣言する必要があります。
NOTE
すべての処理は ext/standard/info.c で行われ、これを読むことができます。エンジンは、php_info_print_module()
を呼び出して、PHP 拡張機能に関する情報を出力します。以下は、単純な MINFO()
の場合です:
#include "php/main/SAPI.h" #include "ext/standard/info.h" #define PIB_TXT "PHPInternalsBook Authors" #define PIB_HTML "<h3 id="nbsp-PIB-TXT-nbsp">" PIB_TXT "</h3>" PHP_MINFO_FUNCTION(pib) { time_t t; char cur_time[32]; time(&t); php_asctime_r(localtime(&t), cur_time); php_info_print_table_start(); php_info_print_table_colspan_header(2, "PHPInternalsBook"); php_info_print_table_row(2, "Current time", cur_time); php_info_print_table_end(); php_info_print_box_start(0); if (!sapi_module.phpinfo_as_text) { php_write(PIB_HTML, strlen(PIB_HTML)); } else { php_write(PIB_TXT, strlen(PIB_TXT)); } php_info_print_box_end(); } zend_module_entry pib_module_entry = { STANDARD_MODULE_HEADER, "pib", NULL, /* Function 入口 */ NULL, /* Module 初始化 */ NULL, /* Module 关闭 */ NULL, /* Request 初始化 */ NULL, /* Request 关闭 */ PHP_MINFO(pib), /* Module information */ "0.1", /* 扩展的版本号写在这里 */ STANDARD_MODULE_PROPERTIES };
php_info_print_*() API を処理することです。生の情報を出力したい場合は、単純な
php_write() で十分です。
php_write() は、渡した情報を SAPI 出力ストリームのパラメーターとして扱います。
php_info_print_*() API は同じですが、以前の要求に従ってフォーマットされます。 HTML 形式にしたい場合は HTML の
table-tr-td タグを使用しますが、HTML 形式にする必要がない場合はスペースで区切ります。
php_info_print_*() API を導入するには ext/standard/info.h をインクルードする必要があり、さらに # もインクルードする必要があります。 ##php /main/SAPI.h
を実行して、sapi_module シンボルを取得します。このシンボルはグローバルであり、現在の PHP プロセスで使用される SAPI
を表します。 phpinfo_as_text フィールドは、php-fpm
のような「Web」SAPI を記述するか、php-cli テキストのような「Web」を記述するかを示します。 (SAPI)。
フックをトリガーできるものは次のとおりです:
- phpinfo()
- 関数を呼び出します
- 、
php-cgi -i
、php-fpm -i
。あるいは、より抽象的な表現は<sapi_binary> - i</sapi_binary>
##php --ri
またはクライアントの - ReflectionExtension::info()
出力形式に注意してください。テキストと HTML の間で変換する必要がある場合は、でsapi_module.phpinfo_as_text
を調べてください。クライアント側の拡張情報がどのように呼び出されるのかを知る方法はありません。MINFO()
INI 設定を表示したい場合は、
DISPLAY_INI_ENTRIES() マクロを呼び出すだけです。このマクロの分析については、display_ini_entries() を参照してください。
MINFO()
クライアントの呼び出し
- 関数
-
php -i
、 - php-cgi -i
、
php-fpm -i。あるいは、より抽象的な表現は
- i ##php --ri
またはクライアントの ReflectionExtension::info() -
注:
sapi_module.phpinfo_as_textDISPLAY_INI_ENTRIES()を調べてください。クライアント側の拡張情報がどのように呼び出されるのかを知る方法はありません。
で
INI 設定を表示したい場合は、
MINFO()
マクロを呼び出すだけです。このマクロの分析については、display_ini_entries() を参照してください。リフレクション API の説明
リフレクションは、
構造体を広範囲に使用します。たとえば、
ReflectionExtension::getVersion() を呼び出すと、API は zend_module_entry
構造体のバージョン フィールドのみを読み取ります。 関数の検出と同様に、
zend_module_entry
には
メンバーがあり、これは PHP 関数の登録に使用されます。 <p>基本的に、PHP ユーザーランド リフレクション API は、<code>zend_module_entry
構造を読み取り、その情報を公開するだけです。 module_number
を使用して、エンジン内のさまざまな場所に登録されている拡張機能に関する情報を収集することもできます。たとえば、ReflectionExtension::getINIentries()
または ReflectionExtension::getClasses()
がこれを使用します。
以上がPHPで拡張情報を公開する方法の詳細内容です。詳細については、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)

ホットトピック











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

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

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

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