ホームページ  >  記事  >  バックエンド開発  >  PHP で拡張機能のステータスを動的に表示するにはどうすればよいですか?拡張機能を動的にロードするにはどうすればよいですか?

PHP で拡張機能のステータスを動的に表示するにはどうすればよいですか?拡張機能を動的にロードするにはどうすればよいですか?

青灯夜游
青灯夜游転載
2021-07-06 19:08:262603ブラウズ

PHP で拡張機能のステータスを動的に確認するにはどうすればよいですか?拡張機能を動的にロードするにはどうすればよいですか?以下の記事では、動的操作中に拡張機能の状態を確認し、拡張機能を読み込む方法を紹介しますので、ご参考になれば幸いです。

PHP で拡張機能のステータスを動的に表示するにはどうすればよいですか?拡張機能を動的にロードするにはどうすればよいですか?

php.ini のコンパイルと構成が完了すると、PHP 拡張機能が正常にインストールされました。ただし、PHP には、動的ランタイム中に拡張機能のステータスを表示し、php.ini で構成されていない拡張機能を読み込むことができる 2 つの関数も提供されています。次に、その用途を見てみましょう。

拡張機能がロードされているかどうかを確認する

echo extension_loaded("redis");

非常に単純な関数であり、その機能は拡張機能がロードされているかどうかを確認することです。拡張機能がロードされている場合は true、拡張機能がロードされていない場合は false を返すブール値を返します。

PHP-FPM Web ページでは、phpinfo() 関数を使用して、現在の PHP ステータスと拡張機能関連の情報を表示できます。 CLI コマンド ライン スクリプトでは、php -m コマンドを使用して、ロードされた拡張機能を表示できます。

拡張機能の動的読み込み

まず、php.ini で Redis 拡張機能の読み込みをオフにし、enable_dl=1 もオンにする必要があります。 dl () 関数を使用して拡張機能を動的にロードできます。

dl("redis");
echo extension_loaded("redis");
// 1

はい、dl() 関数は拡張機能を動的にロードするために使用される関数です。ただし、使用には多くの制限があり、安全な機能ではありません。そのため、PHP7 では、php.ini の設定enable_dl がデフォルトでオフになっています。また、運用環境で拡張機能を読み込むためにこの方法を使用しないようにしています。

なお、この機能はPHP7のCLI環境でのみ有効です。つまり、PHP-FPM Web環境では、php.iniのenable_dlがONになっていても、この機能は役に立ちません。

拡張機能の読み込みディレクトリは、PHP のデフォルトの拡張機能ディレクトリに基づいて読み込まれます。Windows 環境では、ファイル拡張子は .dll であることに注意してください。拡張機能のロードに失敗すると、この関数は false を返すだけでなく、E_WARNING エラー メッセージも生成されます。最後に、この関数は PHP セーフ モードでも使用できません。

要約すると、運用環境では、拡張機能を動的に読み込む機能を使用しないようにしています。これは学習教材として使用できます。ローカル コンピュータに一度に多くの拡張機能をロードしたくない場合に使用できます。特定の機能をテストする必要があり、特別な拡張機能が必要な場合は、この機能の使用を検討してください。ローカルテスト用です。

测试代码:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202005/source/%E5%8A%A8%E6%80%81%E6%9F%A5%E7%9C%8B%E5%8F%8A%E5%8A%A0%E8%BD%BDPHP%E6%89%A9%E5%B1%95.php

参考文档:
https://www.php.net/manual/zh/function.extension-loaded.php
https://www.php.net/manual/zh/function.dl.php

この記事は https://juejin.cn/post/6953791854441660424

著者: ハードコア プロジェクト マネージャー

推奨調査: " PHP ビデオ チュートリアル >>

以上がPHP で拡張機能のステータスを動的に表示するにはどうすればよいですか?拡張機能を動的にロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。