PHP legt nicht fest, dass nur HTML-Dateien ausgegeben werden sollen, es kann dynamische GIF-Dateien generieren. Bei der Verwendung von PHP zum dynamischen Generieren von GIF-Bildern sind einige Probleme aufgetreten, die ich mit PHP4.05 (für Win32) + Apache3.1.2_win32 gelöst habe.
Problem 1: Das Programm, das GIFs dynamisch generiert, lässt sich überhaupt nicht starten
Ich habe ein Beispiel über die Verwendung von PHP zum Generieren von GIF geschrieben. Als ich es ausführte, stellte ich fest, dass die Seite einfach nicht aktualisiert werden konnte, als ob sie tot wäre, und der Browser keine Fehlermeldungen anzeigte.
Lösung: Ändern Sie php.ini in dem Verzeichnis, in dem sich PHP befindet.
Ändern Sie php.ini in dem Pfad, in dem PHP installiert ist (Hinweis: Es muss php.ini im PHP-Pfad sein). extension_dir = die Pfaderweiterungen, in denen PHP installiert ist (für Beispiel: c:phpextensions).
Frage 2: php_gd.dll unterstützt kein GIF.
Ich habe die dynamische Linkbibliothek php_gd.dll zu Beginn des Programms geladen, aber beim Ausführen des Programms wurde das folgende Ergebnis angezeigt:
<br> <b >Warnung</b>: ImageGif: Keine GIF-Unterstützung in diesem PHP-Build in <b>d:apachehtdocsgif2.php3</b> in Zeile <b>12</b><br>.
Lösung: Verwenden Sie PHP4.05
Erst dann entdeckte ich, dass das im Buch beschriebene Problem darin bestand, dass php_gd.dll die Generierung von GIF überhaupt nicht unterstützen konnte. Nachdem ich von einem Experten angeleitet worden war, stellte ich fest, dass in meiner Version von php4.04 für Win32 php_gd_gif.dll fehlte Ich habe eine höhere Version von php4 .05 heruntergeladen, die php_gd_gif.dll enthält, die die Generierung dynamischer GIFs unterstützt.
Frage 3: Es erscheint eine Warnung: Warnung: Funktionsregistrierung fehlgeschlagen – doppelter Name – imagearc in d:apachehtdocsgif2.php3 in Zeile 3.
Das Programm sieht wie folgt aus:
<?
dl("php_gd_gif.dll");
header("content-type:image/gif");
$im = imagecreate(400,30);
$black = imagecolorallocate($im,0,0,0);
$white = imagecolorallocate($im,255,255,255);
imageline($im,200,15,215,15,$white);
imagestring($im, 5, 4, 10, „Dies ist ein GIF“, $white);
imagegif($im);
imagedestroy($im);
?>
Lösung: Ändern Sie das Programm oder die php.ini
Die Funktion dl() wird zum Laden der DLL verwendet. Wenn jedoch das „;“ vor der erforderlichen DLL in der Datei php.ini entfernt wurde, verwenden Sie diese Funktion derzeit nicht.
Wenn das „;“ vor der Erweiterung=php_gd_gif.dll in der INI-Datei nicht entfernt wird, muss dl(„php_gd_gif.dll“); verwendet werden. Kurz gesagt: Die beiden sind unterschiedlich, andernfalls der Server Ich werde denken, dass es sich um einen doppelten Namen handelt.