電子メール サービス関連の開発に PHP を使用すると、「PHP 致命的なエラー: キャッチされないエラー: 未定義関数 imap_search() の呼び出し」というエラーが発生する場合があります。このエラーの原因は、PHP が Imap 拡張ライブラリを見つけられず、その結果 imap_search() 関数を呼び出すことができないことです。
それでは、この問題をどうやって解決すればいいのでしょうか?以下に、回避策の詳細な手順を示します。
最初のステップは、Imap 拡張ライブラリが有効になっているかどうかを確認することです。 php.ini ファイル内で「;extension=php_imap.dll」という行を見つけ、セミコロンを削除し、PHP サーバーを再起動して Imap 拡張ライブラリを開きます。
Linux システムで PHP を使用している場合は、ターミナルで次のコマンドを実行して Imap 拡張ライブラリをインストールする必要があります:
sudo apt-get install php-imap
Imap 拡張ライブラリが有効になっていないことが確認された場合、または上記の手順で問題が解決しない場合は、Imap を手動でインストールする必要があります。拡張ライブラリ。
Windows システムでは、php.net にアクセスして、現在のオペレーティング システムと PHP バージョンに一致する Imap 拡張ライブラリをダウンロードし、プロンプトに従ってインストールできます。
Linux システムでは、ターミナルで次のコマンドを実行して Imap 拡張ライブラリをインストールできます:
sudo apt-get install php7.x-imap
その中に, x は現在使用している PHP のバージョン番号を表します。
Windows または Linux のどちらを使用している場合でも、Imap 拡張ライブラリをインストールした後は、次の作業を行う必要があります。 php.ini ファイルに手動で追加する必要があります。 php.ini ファイルを開き、「extension_dir」行を見つけて、次の内容に変更します:
extension_dir = "Imap 拡張ライブラリが配置されているディレクトリ"
次の内容を追加します。この行の下の内容:
extension=php_imap.dll
Linux システムを使用している場合は、次のコマンドを実行する必要があります:
echo 'extension=imap.だから' >> /etc /php/7.x/mods-available/imap.ini
ln -s /etc/php/7.x/mods-available/imap.ini /etc/php/7 .x/cli/conf.d /20-imap.ini
ln -s /etc/php/7.x/mods-available/imap.ini /etc/php/7.x/fpm/conf.d /20-imap.ini
このうち、x は現在使用している PHP のバージョン番号を表します。
上記の手順を完了した後、変更を有効にするために PHP サーバーを再起動する必要があります。 Windows システムでは、システム サービスで PHP サーバーを見つけ、右クリックして [再起動] を選択します。 Linux システムでは、次のコマンドを実行できます。
sudo service php7.x-fpm restart
概要
Imap 拡張ライブラリは、電子メール関連の実装に重要です。は PHP 拡張機能で機能しますが、歴史的な理由により、一部の PHP バージョンとオペレーティング システムではこの拡張機能がデフォルトで有効になっていません。この時点で、PHP メール関連機能を正常に使用するには、Imap 拡張ライブラリを手動で有効にするか、ライブラリをインストールして php.ini ファイルに追加する必要があります。
以上がPHP 致命的エラー: キャッチされないエラー: 未定義関数 imap_search() の呼び出しの解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。