php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.01.2010, 21:31  
Erfahrener Benutzer
 
Registriert seit: 02.03.2008
Beiträge: 351
robydog befindet sich auf einem aufstrebenden Ast
Standard Allowed Memory Size

Hallo
ich habe da ein kleines Problem und hoffe ihr könnt mir helfen

Ich habe ein Script programmiert was mir BILDER hochlädt dazu wird das Bild dann in diversen Grössen gespeichert

Nun kommt folgende Fehlermeldung
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 1800 bytes) in public_html/user.php on line 665


Ich denke nicht das mein Hoster die Memory Size höher einstellen will.
Kann es an falscher Programmierung liegen? Sprich kann es nur daran liegen dass ich was falsch programmiert habe?

Gruss
Andi
robydog ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.01.2010, 21:49  
Erfahrener Benutzer
 
Registriert seit: 08.10.2009
Beiträge: 682
PHP-Kenntnisse:
Anfänger
Harry_X befindet sich auf einem aufstrebenden Ast
Standard

wie groß war das file?
kann auch an der maxpostsize liegen
Harry_X ist offline  
Alt 09.01.2010, 21:58  
Erfahrener Benutzer
 
Registriert seit: 02.03.2008
Beiträge: 351
robydog befindet sich auf einem aufstrebenden Ast
Standard

ca 4 MB ich habe erlaubt dateien bis zu 10 MB hochzuladen also ich würde dies gerne erlauben sagen wirs mal so
robydog ist offline  
Alt 09.01.2010, 22:12  
Erfahrener Benutzer
 
Registriert seit: 08.10.2009
Beiträge: 682
PHP-Kenntnisse:
Anfänger
Harry_X befindet sich auf einem aufstrebenden Ast
Standard

hm die meldung sagt aber was von 32mb. vllt klappt die verarbeitung ja nicht.

ich würde davon abraten, derartige riesendateien auf n webserver eines webhosters zu verarbeiten, schließlich hat er noch anderes zu tun
Harry_X ist offline  
Alt 09.01.2010, 22:18  
Erfahrener Benutzer
 
Registriert seit: 26.10.2009
Beiträge: 425
PHP-Kenntnisse:
Fortgeschritten
Yoshi- befindet sich auf einem aufstrebenden Ast
Standard

Es braucht einfach zuviel Speicher um das Bild mehrfach in verschiedenen Größen zuspeichern.
Yoshi- ist offline  
Alt 09.01.2010, 22:20  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.637
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Wie viele verschiedene Größen erstellst du denn?

Denn jeder Funktionsaufruf von imagecreatefromjpg() oder ähnliches benötigt Speicher. Bei einem 4MB großem Bild kannst du also 8 Bildressourcen paralell haben bevor dir der Speicher ausgeht.

Wenn du das Bild vergrößerst weniger, wnen du es verkleinerst mehr.

imagedestroy() ist hier dein Freund denke ich um den Speicher eines bereits fertig bearbeiteten Bildes wieder freizugeben.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline  
Alt 09.01.2010, 22:20  
Erfahrener Benutzer
 
Registriert seit: 02.03.2008
Beiträge: 351
robydog befindet sich auf einem aufstrebenden Ast
Standard

Und was wäre dann die lösung?
ich kann ja nicht ein 5MB bild als Thumbnail anzeigen
robydog ist offline  
Alt 09.01.2010, 22:24  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.637
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

PHP-Code:
//wir laden unser bild
$img imagecreatefromjpg(..);

....
machen tausend sachen damit....

//<-- hier imagedestroy($img) um dne Speicher freizugeben.

//wir laden das nächste bild
$img imagecreatefromjpg(..); 
Edit: Code ist rein exemplarischer Natur da der richtige Einsatz der richtigen Funktion zum freigeben des Speichers von zu vielen unbekannten Faktoren abhängt.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline  
Alt 09.01.2010, 22:25  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Die Dateigröße ist ABSOLUT irrelevant für die GDlib, es geht um die Auflösung die das Bild hat, weil davon abhängig ist der Speicherverbrauch.

siehe: [Grundlagen] GDlib und große Bilder - Developer's Guide

Die Lösung ist zu schauen ob du in deinem Script verwenderisch mit den Resourcen umgehst und eventuell welche nach der benutzung nicht direkt freigibst.
Ansonsten kannst du nur auf pixelbasis begrenzen damit das script nicht stirbt.
robo47 ist offline  
Alt 09.01.2010, 22:26  
Erfahrener Benutzer
 
Registriert seit: 02.03.2008
Beiträge: 351
robydog befindet sich auf einem aufstrebenden Ast
Standard

Danke für eure Hilfe
robydog ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Workaround um shared memory Bug zu umgehen Plague PHP-Fortgeschrittene 6 06.01.2010 23:45
Fehler beim kompilieren von php 5.2.9 malio Server, Hosting und Workstations 11 05.06.2009 18:40
Memory Size - Trotz Umstellung Fehler! MaxDittmann PHP Tipps 2009 4 08.02.2009 00:33
Verzeichnis auslesen Manko10 Wiki Diskussionsforum 15 26.10.2008 21:43
Größe von Memory (Heap) Tabellen R4v3r Datenbanken 1 22.08.2007 17:11
[Erledigt] not allowed to connect to this MySQL server PHP Tipps 2005-2 2 23.09.2005 18:34
Shared Memory PHP-Fortgeschrittene 9 04.09.2005 15:45
Memory exhausted PHP Tipps 2005-2 2 29.08.2005 19:47
[Erledigt] Fatal error: Allowed memory size... PHP Tipps 2005-2 5 07.07.2005 13:01
Allowed Memory Size exhausted bicpi PHP-Fortgeschrittene 16 20.04.2005 00:28
different size in shared object, consider re-linking!? Heart Datenbanken 1 09.03.2005 15:42
Fatal error: Allowed memory size of 8192 bytes exhausted at PHP Tipps 2005 11 06.03.2005 19:26
[Erledigt] imagecreatetruecolor memory size PHP-Fortgeschrittene 2 10.09.2004 17:52
Fatal error: Allowed memory size of PHP Tipps 2004 4 04.09.2004 17:50
[Erledigt] Memory Problem mit gd PHP-Fortgeschrittene 1 25.06.2004 18:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
memory size php, php max allowed memory size, allowed memory size php, allowed memory size of trotz, max_allowed_memory_size, php max memory size, php maximum allowed memory, php max_allowed_memory_size, php \php fatal error: allowed memory size of 33554432\, memory size höher, fatal error allowed memory size of bei grossen bildern trotz 32 mb, max memory size php, php max allowed memorysize, php allowed memory size speicher freigeben, php einstellungen memory exhaust, max allowed memory, http://www.php.de/php-einsteiger/63188-allowed-memory-size.html, <memory_size> php, fatal error: allowed memory size of 33554432 bytes exhausted (tried to allocate 665 bytes), php allowed memory size einstellen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:55 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum