PHP 致命的エラーの解決策: 未定義関数 mime_content_type() の呼び出し
PHP プロジェクトの開発過程で、「PHP 致命的エラー: 未定義関数 mime_content_type() への呼び出し」という問題が頻繁に発生することがあります。 )」というメッセージが表示される場合、このエラーは通常、PHPMailer を使用するとき、またはファイルをアップロードするときに発生します。これは実際には、PHP のバージョンが異なるか、mime_content_type() 拡張機能が欠落していることが原因で発生します。
それでは、この問題をどうやって解決すればいいのでしょうか?次に、この記事ではいくつかの解決策を紹介します。
方法 1: php.ini で mime_content_type() を有効にする
最初の方法は、php.ini ファイルで mime_content_type() 関数を有効にすることです。
PHP インストール ディレクトリの php.ini ファイルを開き、ファイル内で「extension=php_fileinfo.dll」を検索し、先行するコメント記号 (つまり「;」) を削除して、保存して終了します。 Apacheサーバーを再起動します。この dll ファイルが拡張機能ディレクトリに存在しない場合は、dll ファイルを手動でダウンロードし、php 拡張機能ディレクトリにコピーする必要があります。
Linux システムを使用している場合は、php.ini ファイルを編集し、「extension=fileinfo.so」を検索し、前のコメントのコメントを解除して mime_content_type() 関数を有効にします。
方法 2: php 拡張機能と fileinfo 拡張機能をインストールすることによる
2 番目の方法は、php 拡張機能と fileinfo 拡張機能をインストールすることです。
まず、ターミナルにコマンド ライン php -v を入力して、現在の PHP バージョンを確認します。PHP5 の場合は、fileinfo 拡張子を直接インストールします。次のコマンド ラインを入力します:
sudo apt-get install -y fileinfo
PHP7 の場合は、次のコマンド ラインを入力します:
sudo apt-get install -y php7. X-fileinfo (X は PHP のバージョン番号です)
インストール完了後、Apache サーバーを再起動すると問題は解決します。
方法 3: コードを変更して実現する
3 つ目の方法は、コードを変更して実現することです。
PHPMailer で、次のコードに基づいて次の行を追加します。
if (!function_exists('mime_content_type')) {
function mime_content_type($filename) {
return new finfo(FILEINFO_MIME_TYPE, '/usr/share/misc/magic');
}
}
単純なアップロード ファイルを使用する必要がある場合ファイルをアップロードするコード内の次のコードに従って判断できます:
if (function_exists('mime_content_type')) {
$type = mime_content_type($filename);
} else if (function_exists('finfo_file')) {
$finfo = finfo_open(FILEINFO_MIME_TYPE); $type = finfo_file($finfo, $filename);finfo_close($finfo);
} else {
$type = 'application/octet-stream';
}
注: 上記のコードは参照専用であり、次のようにする必要があります。実際の状況に応じて開発され、ニーズに応じて変更されます。
要約すると、上記は PHP 致命的エラー: 未定義関数 mime_content_type() の呼び出しに対するいくつかの解決策です。具体的な方法は、独自の状況に応じて選択する必要があります。どの方法を使用する場合でも、目的は mime_content_type() 関数を使用して致命的エラーの問題を解決できるようにすることです。
以上がPHP 致命的エラーの解決策: 未定義関数 mime_content_type() の呼び出しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。