Maison > Article > développement back-end > Que dois-je faire si PHP ne peut pas afficher l'image avec GD ?
Solutions au problème selon lequel le dessin PHP utilisant gd ne peut pas être affiché : 1. Enregistrez le format de fichier au format utf-8 sans BOM ; 2. Utilisez "ob_clean();" pour vider le tampon.
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3
PHP utilise la bibliothèque GD pour dessiner des images et ne peut pas les afficher.
Dessinez le style du document image selon la bibliothèque officielle GD
Style de base original
$width = 120; $height = 50; $img = @imagecreatetruecolor($width, $height) or die('Cannot Initialize new GD image stream');;//新建一个GD图像资源 $img_bgcolor = imagecolorallocate($img, mt_rand(157,255), mt_rand(157,255), mt_rand(157,255));//背景色 $img_textcolor = imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));//字体颜色 $img_rectangle = imagefilledrectangle($img,0,0,$width, $height,$img_bgcolor);//画一个矩形图像 imagestring($img, 1, 5, 5, 'A Simple Text String', $img_textcolor); // 输出图像 header("Content-type:image/png"); imagepng($img); imagedestroy($img);//销毁图像
Mais cela ne fonctionnera pas dans l'application réelle Le problème de l'affichage normal des images :
Les raisons peuvent être les suivantes :
Cause 1 : Le format d'encodage du fichier a un en-tête de nomenclature. utilisez un outil d'encodage tiers, sublime ou notepad++, etc., enregistrez le format de fichier au format utf-8 sans BOM
Raison 2 : problème de tampon PHP, la solution est d'utiliser ob_clean(); le tampon.
Fonction tampon commune ob function
Référence : http://php.net/manual/zh/ref.outcontrol.php
ob_get_contents() - 返回输出缓冲区的内容 ob_flush() - 冲刷出(送出)输出缓冲区中的内容 ob_clean() - 清空(擦掉)输出缓冲区 ob_end_flush() - 冲刷出(送出)输出缓冲区内容并关闭缓冲 ob_end_clean() - 清空(擦除)缓冲区并关闭输出缓冲 flush() - 刷新输出缓冲
Jugez si la bibliothèque GD est installée
function_exists('imagecreate') Jugez get_extension_funcs() en jugeant si la méthode fournie par la bibliothèque d'extension existe, mais elle n'est pas exhaustive et cette méthode ne l'est pas recommandé (car certaines extensions Aucune fonction n'est fournie)
in_array('extension', get_loaded_extensions()) Déterminer si l'extension est installée en vérifiant si elle fait partie des extensions chargées (complet, mais pas concis)
extension_loade('Extension library name') Vérifiez en jugeant si la bibliothèque d'extension est chargée (complète et non concise, il est recommandé d'utiliser cette méthode pour vérifier si l'extension est installée et chargée)
Apprentissage recommandé : "Tutoriel vidéo PHP 》
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!