Home > Article > Backend Development > Solution to PHP Fatal error: Call to undefined function mime_content_type()
Solution to PHP Fatal error: Call to undefined function mime_content_type()
In the process of developing a PHP project, sometimes you will often encounter this problem - "PHP Fatal error: Call to undefined function mime_content_type()", this error usually occurs when using PHPMailer or uploading files. This is actually caused by different PHP versions or lack of mime_content_type() extension.
So how to solve this problem? Next, this article will introduce you to some solutions.
Method 1: Enable mime_content_type() in php.ini
The first method is to enable the mime_content_type() function in the php.ini file.
Open the php.ini file in the PHP installation directory, search for "extension=php_fileinfo.dll" in the file, remove the preceding comment symbol, that is, ";", then save and exit, and restart the Apache server. If this dll file does not exist in your extension directory, you need to manually download the dll file and copy it to the php extension directory.
If you are using a Linux system, edit the php.ini file, search for "extension=fileinfo.so", and uncomment the previous comment to enable the mime_content_type() function.
Method 2: By installing php and fileinfo extensions
The second method is by installing php and fileinfo extensions.
First, enter the command line in the terminal: php -v to check the current PHP version. If it is PHP5, just install the fileinfo extension directly. Enter the following command line:
sudo apt-get install -y fileinfo
If it is PHP7, enter the following command line:
sudo apt-get install -y php7. X-fileinfo (where X is your PHP version number)
After the installation is completed, restart the Apache server and the problem will be solved.
Method three: by modifying the code to achieve
The third method is to achieve by modifying the code.
In PHPMailer, add this line based on the following code:
if (!function_exists('mime_content_type')) {
function mime_content_type($filename) {
return new finfo(FILEINFO_MIME_TYPE, '/usr/share/misc/magic');
}
}
If you need to use simple upload file, you can judge according to the following code in the code of uploading the file:
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';
}
Note: The above code is for reference only and needs to be developed according to actual conditions modifications according to the needs.
To sum up, the above are several solutions to PHP Fatal error: Call to undefined function mime_content_type(). The specific method should be chosen according to your own situation. No matter which method is used, the purpose is to make the mime_content_type() function available to solve the problem of Fatal error.
The above is the detailed content of Solution to PHP Fatal error: Call to undefined function mime_content_type(). For more information, please follow other related articles on the PHP Chinese website!