PHP ne spécifie pas de générer uniquement des fichiers HTML, il peut générer des fichiers GIF dynamiques. J'ai rencontré quelques problèmes lors de l'utilisation de php pour générer dynamiquement des images GIF, qui ont été résolus. J'utilise php4.05 (pour win32) + apache3.1.2_win32.
Problème 1 : le programme qui génère dynamiquement des GIF ne peut pas être démarré du tout
J'ai écrit un exemple sur l'utilisation de php pour générer un gif. Lorsque je l'ai exécuté, j'ai constaté que la page ne pouvait tout simplement pas être actualisée, comme si elle était morte, et que le navigateur n'avait aucune invite d'erreur.
Solution : Modifiez php.ini dans le répertoire où se trouve php.
Modifiez php.ini dans le chemin où php est installé (remarque : il doit s'agir de php.ini dans le chemin php) extension_dir = les extensions du chemin où php est installé (pour exemple : c:phpextensions).
Question 2 : php_gd.dll ne supporte pas le gif.
J'ai chargé la bibliothèque de liens dynamiques php_gd.dll au début du programme : dl("php_gd.dll"); mais lors de l'exécution du programme, le résultat suivant est apparu :
<br> <b >Attention</b> : ImageGif : Pas de support GIF dans cette version PHP dans <b>d:apachehtdocsgif2.php3</b> en ligne <b>12</b><br>.
Solution : utilisez php4.05
Ce n'est qu'à ce moment-là que j'ai découvert que le problème écrit dans le livre était que php_gd.dll ne pouvait pas du tout prendre en charge la génération de gif. Après avoir été guidé par un expert, j'ai découvert que ma version de php4.04 pour win32 manquait de php_gd_gif.dll, donc. J'ai téléchargé une version supérieure de php4.05, qui contient php_gd_gif.dll qui prend en charge la génération de gif dynamique.
Question 3 : Un avertissement apparaît : Attention : L'enregistrement de la fonction a échoué - nom en double - imagearc dans d:apachehtdocsgif2.php3 à la ligne 3.
Le programme est le suivant :
<?
dl("php_gd_gif.dll");
header("type de contenu:image/gif");
$im = imagecreate(400,30);
$noir = imagecolorallocate($im,0,0,0);
$blanc = imagecolorallocate($im,255,255,255);
imageline($im,200,15,215,15,$white);
imagestring($im, 5, 4, 10, "Ceci est un Gif", $white);
imagegif($im);
imagedestroy($im);
?>
Solution : Modifier le programme ou le php.ini
La fonction dl() est utilisée pour charger des DLL, mais si le ";" devant la DLL requise a été supprimé dans le fichier php.ini, n'utilisez pas cette fonction pour le moment.
Si le ";" avant extension=php_gd_gif.dll dans le fichier ini n'est pas supprimé, alors dl("php_gd_gif.dll"); Bref : les deux sont différents l'un de l'autre, sinon le serveur. pensera que c'est un nom en double.