Solution à l'erreur fatale PHP : appel à une fonction non définie mime_content_type()
Dans le processus de développement d'un projet PHP, vous rencontrerez parfois souvent ce problème - "Erreur fatale PHP : appel à une fonction non définie mime_content_type()", cette erreur est généralement se produit lors de l'utilisation de PHPMailer ou du téléchargement de fichiers, etc. Cela est en fait dû à différentes versions de PHP ou à l'absence d'extension mime_content_type().
Alors comment résoudre ce problème ? Ensuite, cet article vous présentera quelques solutions.
Méthode 1 : Activer mime_content_type() dans php.ini
La première méthode consiste à activer la fonction mime_content_type() dans le fichier php.ini.
Ouvrez le fichier php.ini dans le répertoire d'installation de PHP, recherchez "extension=php_fileinfo.dll" dans le fichier, supprimez le symbole de commentaire précédent, c'est-à-dire ";", puis enregistrez et quittez, et redémarrez le serveur Apache. . Si ce fichier dll n'existe pas dans votre répertoire d'extension, vous devez télécharger manuellement le fichier dll et le copier dans le répertoire d'extension php.
Si vous utilisez un système Linux, modifiez le fichier php.ini, recherchez "extension=fileinfo.so" et décommentez le commentaire précédent pour activer la fonction mime_content_type().
Méthode 2 : En installant les extensions php et fileinfo
La deuxième méthode consiste à installer les extensions php et fileinfo.
Tout d'abord, entrez la ligne de commande dans le terminal : php -v pour vérifier la version actuelle de PHP. S'il s'agit de PHP5, installez simplement l'extension fileinfo. Entrez la ligne de commande suivante :
sudo apt-get install -y fileinfo
S'il s'agit de PHP7, entrez la ligne de commande suivante :
sudo apt-get install -y php7.X-fileinfo (où X est votre version de PHP numéro )
Une fois l'installation terminée, redémarrez le serveur Apache et le problème sera résolu.
Troisième méthode : en modifiant le code
La troisième méthode consiste à modifier le code.
Dans PHPMailer, ajoutez cette ligne basée sur le code suivant :
if (!function_exists('mime_content_type')) {
function mime_content_type($filename) {
return new finfo(FILEINFO_MIME_TYPE, '/usr/share/ misc/magic');
}
}
Si vous avez besoin d'utiliser un simple fichier de téléchargement, vous pouvez juger selon le code suivant dans le code de téléchargement du fichier :
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';
}
Remarque : le code ci-dessus est à titre de référence uniquement et doit être modifié en fonction des besoins réels de développement.
Pour résumer, voici plusieurs solutions à l'erreur fatale PHP : Appel à la fonction non définie mime_content_type(). La méthode spécifique doit être choisie en fonction de votre propre situation. Quelle que soit la méthode utilisée, le but est de rendre la fonction mime_content_type() disponible pour résoudre le problème d'erreur fatale.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!