SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 28.04.2005, 12:33:26
mare26 mare26 ist offline
Anfänger
 
Registriert seit: Dec 2004
Ort: Dachau
Beiträge: 13
AW: Datei einlesen erzeugt "Allowed memory size of 33554432 bytes exhausted"

So, nachdem hier also nun die Philosophierrunde gestartet hat, wäre ein eff hier dann die Lösung zum Problem:
PHP-Code:
fseek($handle$pointer);
//Zeilenweises Einlesen von 10000 Zeilen
for ($i 0$i <= 10000$i++) 
    {   
    
//Array aus den Zeilen zusammenstellen
    
$lines=fgets($handle);
    
//Arrayeintrag aus Feld:Feldeintrag:Dateizeiger:Liniennummer
    
if($lines!="\r\n"$arrlines[]=$lines.':'.ftell($handle).':'.$i."\n";
    }
$arr_modelle=implode("\n\r",$arrlines);
//Das Modellarray, welches aus mehreren Modellen besteht aufteilen
$modell_arr=explode("[ARTIKEL]",$arr_modelle);
$anzahl_modelle=count($modell_arr); 
....usw.

Das klappt hervorragend. Den so hol ich mir immer nur einen Teil heraus, verarbeite ihn und am Ende der Prozedur übergebe ich dann via get den Dateizeiger um dann an der Stelle weiterzumachen. Man muss also nicht immer gleich alles über die .ini lösen. Denn mal ganz ehrlich. 80% aller Internet-Benutzer haben keinen Root-Server oder ähnliches gleich mal nebenan im Kinderzimmer stehen sondern haben eben nen ganz normalen Webspace mit ein bischen Firlefanz. Dem Hoster dann zu sagen, er soll doch mal eben irgend was neu kompilieren endet dann meist mit Gelächter desselbigen Hosters.

fseek, ftell sind übrigens prima Dateizeiger Funktionen :-)

Danke an die ersten 3 Beiträge, die waren recht hilfreich für nen Denkansatz. Vielleicht hilft das Skript ja auch einem anderen Allocator ;-)
Mit Zitat antworten
  #12  
Alt 28.04.2005, 13:22:00
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Datei einlesen erzeugt "Allowed memory size of 33554432 bytes exhausted"

Zitat:
Zitat von mare26
Man muss also nicht immer gleich alles über die .ini lösen. Denn mal ganz ehrlich. 80% aller Internet-Benutzer haben keinen Root-Server oder ähnliches gleich mal nebenan im Kinderzimmer stehen sondern haben eben nen ganz normalen Webspace mit ein bischen Firlefanz.
Diese 80% betreiben in der Regel aber auch kein Riesenshopsystem. :-)
Mit Zitat antworten
  #13  
Alt 29.04.2005, 04:56:13
mare26 mare26 ist offline
Anfänger
 
Registriert seit: Dec 2004
Ort: Dachau
Beiträge: 13
AW: Datei einlesen erzeugt "Allowed memory size of 33554432 bytes exhausted"

Zitat:
Zitat von xabbuh
Diese 80% betreiben in der Regel aber auch kein Riesenshopsystem. :-)
Naja, so riesig ist das nicht. Ausserdem ist es nicht nur eins. Der Shop ist an ein Wawisystem angebunden, deswegen auch diese dämliche Datenstruktur. Jetzt hab ich allerdings das nächste Problem. Kann es eventuell sein, dass ein Skript, dass in einer header("Location") Schleife sitzt irgendwann vom Apache aufgrund dessen TimeOut Settings gecancelt wird? Es läuft nämlich folgendermassen: Also, ich starte mit einem Artikel Import, der in sich in 2 Schleifen hängt. Erstens in der Scriptschleife, dass heisst, ich hol mir ja x Zeilen aus der Datei, verarbeite diese und gehe anschliessend mit einem header("Location") wieder in das gleiche Skript, solange, bis alle Zeilen eingelesen wurden. Anschliessend springe ich dann zum nächsten Script, dass dann Modelle einliest usw. Lasse ich die Skripte einzeln durchlaufen, also ohne header, dann funktioniert alles tadellos. Sobald ich aber das Skript mit headern laufen lasse kommt irgendwann ein "Seite wurde nicht gefunden. An php kanns net liegen, also ists doch der böse Apache, oder?

Wäre nett, wenn da jemand was dazu weiss!

Danke schonmal

Vielleicht ne kleine Lösung fürs Problem? :-)
Mit Zitat antworten
  #14  
Alt 29.04.2005, 13:35:31
Benutzerbild von dachris
dachris dachris ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 401
AW: Datei einlesen erzeugt "Allowed memory size of 33554432 bytes exhausted"

Ist es immer die gleiche Stelle an der er hängen bleibt????

Steht evtl. was in den error logs? sowohl vom apache als auch von php?

Ist evtl der header mal falsch gesetzt????also mit ner nicht existenten URL

Eigentlich kanns der apache nicht sein, da du ja immer wieder einen neuen Prozess startest.......

Geändert von dachris (29.04.2005 um 13:35:46 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Inhalt einer Datei ab einem Fixpunkt einlesen rkersting PHP für Fortgeschrittene und Experten 11 21.03.2005 13:52:47


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:45:01 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt