[PHP] imagecreatefromstring Fehlerfall
-
Hallo
ich benutze die Funktion imagecreatefromstring() und will im Fehlerfall ein Html-Dokument ausgeben.$pic = imagecreatefromstring(file_get_contents($file));
Der Fehler ist
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 6400 bytes) in /media/free/devent/Web/Hp2.0/inc/photos/funktionen.php on line 41
Ich habe mir gedacht es müsste so einfach gehen:
function createThumb($file, $name, $dirvorschau, $twidth) { $pic = imagecreatefromstring(file_get_contents($file)); var_dump($pic); if ( $pic !== false ) { } else { return false; } } if ( !createThumb(...) ) { echo "<p>Fehler</p>"; }
Allerdings wird nach dem Ausführen der Funktion imagecreatefromstring() nichts weiter ausgeführt. Als ob die die() Funktion ausgeführt worden ist. Hat das was in mit den Einstellungen in der php.ini zu tun?
$pic = @imagecreatefromstring(file_get_contents($file));
Das selbe Verhalten, nur es wird jetzt nicht die Fehlermeldung von PHP ausgegeben.
-
DEvent schrieb:
function createThumb($file, $name, $dirvorschau, $twidth) { $pic = imagecreatefromstring(file_get_contents($file)); var_dump($pic); if ( $pic !== false ) { } else { return false; } } if ( !createThumb(...) ) { echo "<p>Fehler</p>"; }
ich persönlich würd diesen code so schreiben:
function createThumb($file, $name, $dirvorschau, $twidth) { $pic = imagecreatefromstring(file_get_contents($file)); var_dump($pic); if ( $pic === false ) { return true; } return false; } if ( !createThumb(...) ) { echo "<p>Fehler</p>"; }
und des mit dem var_dump() versteh ich ned...
-
Das Problem bei php's "Fatal error" ist: Das Skript wird terminiert
Evtl. lässt sich das noch mit nem Error-Handler abfangen: http://de.php.net/manual/de/function.set-error-handler.phpMir fällt da nur ein, entweder das MemoryLimit zu erhöhen oder irgendwie den Speicherverbrauch des Skripts einzugrenzen (unset() oder so?)
-
und des mit dem var_dump() versteh ich ned...
Das war noch damit ich sehen wollte, ob $pic überhaupt false wird.
Wieso liefert imagecreatefromstring() nicht einfach false zurück?
-
Warum sollte es?
-
Vermutlich kennt es das php-memorylimit gar nicht und wird von php vorzeitig abgewürgt ?
-
Ich frage noch einmal: Wieso sollte die Funktion false zurückgeben?
http://us2.php.net/imagecreatefromstring schrieb:
An image resource will be returned on success. FALSE is returned if the image type is unsupported, the data is not in a recognised format, or the image is corrupt and cannot be loaded.
-
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 6400 bytes) in /media/free/devent/Web/Hp2.0/inc/photos/funktionen.php on line 41
Die Meldung besagt das das aufgerufene Script mehr als 8MB Speicher verbraucht.
Kann man in der PHP.INI umstellen.
Mit dem @ vornean wird tatsächlich auch nur die Ausgabe der Fehlermeldung unterdrückt.Ich würde mal nach einer alternativen Umsetzung Deines Vorhabens schauen.
Was genau soll es denn werden?