PHP Fatal error: Call to undefined function mime_content_type()的解決方法
在進行一個PHP專案的開發過程中,有些時候會常常遇到這種問題-「PHP Fatal error: Call to undefined function mime_content_type()”,這個錯誤一般會在使用PHPMailer或上傳檔案等時出現,這其實是因為PHP版本不同或缺少mime_content_type()擴充導致的。
那麼該怎麼解決這個問題呢?接下來,本文將為您介紹一些解決方法。
方法一:在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()函數。
方法二:透過安裝php以及fileinfo擴充
第二種方法是透過安裝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伺服器,問題就解決了。
方法三:透過修改程式碼來實作
第三種方法是透過修改程式碼來實現。
在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 Fatal error: Call to undefined function mime_content_type()的幾個解決方法,具體的方法是根據自己的情況來選擇。無論採用哪一種方法,目的都是使mime_content_type()函數可用以解決Fatal error的問題。
以上是PHP Fatal error: Call to undefined function mime_content_type()的解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!