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 ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken 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 > Off Topic Area

Off Topic Area Hierein gehört alles, was nichts mit PHP, MySQL, Apache oder ähnlichem zu tun hat

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 17.06.2007, 09:11:18
-=LUPO=- -=LUPO=- ist offline
Anfänger
 
Registriert seit: Sep 2006
Beiträge: 20
Browser bricht Verbindung ab

Hallo Leute,

ich habe ein PHP-Script mit dem ich eine csv-Datei zeilenweise auslese, die einzelnen Spalten überprüfe, falls nötig bearbeite und dann die Zeile in eine Datenbank schreibe. Danach habe ich eine echo-Ausgabe in der die Menge, Änderungen usw. angezeigt werden.

Soweit kein Problem, aber wenn ich eine größere mit knapp 200.000 Zeilen habe, verliert mein Browser die Verbindung. Das Script wird zwar vollständig abgearbeitet, soll heißen, dass alle Zeilen in der Datenbank vorhanden sind aber halt die echo-Ausgabe nicht mehr im Browser angezeigt wird. Es gibt keine Fehlermeldungen und der Bildschirm bleibt leer.

Wenn ich jetzt z.B. nach jeder 1.000sten Zeile ein echo "1.000 Zeilen bearbeitet"; eingebe wird auch die letze echo-Ausgabe (Menge, Änderungen...) angezeigt.

Hat jemand einen Tipp wie ich die Verbindung zum Browser aufrecht erhalten kann ohne dass ich zwischendurch ein echo einzugeben?

Gruß Michael
Mit Zitat antworten
  #2  
Alt 17.06.2007, 12:58:55
Lamau Lamau ist offline
Anfänger
 
Registriert seit: Sep 2006
Beiträge: 5
AW: Browser bricht Verbindung ab

Wie ist die Ausgabe der Zeilen realisiert?
Wird jede Zeile sofort mit echo an den Ausgabepuffer geschickt, oder wird ein String "gefüllt", der dann nach dem kompletten Auslesevorgang "als ganzes" an den Browser gesendet wird?

Ist Letzteres der Fall, könnte dir das memory_limit einen Strich durch die Rechnung machen.

Es wäre auch empfehlenswert, das Error-Logging einzuschalten, um zu sehen, ob PHP etwaige Fehlermeldungen ausgibt, die den Browser nicht mehr erreichen:
PHP-Code:
error_reporting(E_ALL E_STRICT);
ini_set('log_errors',TRUE);
ini_set('error_log','GEWÜNSCHTER_PFAD_ZUM_ERROR.LOG'); 
Mit Zitat antworten
  #3  
Alt 18.06.2007, 11:57:14
-=LUPO=- -=LUPO=- ist offline
Anfänger
 
Registriert seit: Sep 2006
Beiträge: 20
AW: Browser bricht Verbindung ab

Hallo LAMAU,

Zitat:
Wird jede Zeile sofort mit echo an den Ausgabepuffer geschickt, oder wird ein String "gefüllt", der dann nach dem kompletten Auslesevorgang "als ganzes" an den Browser gesendet wird?
ich habe beide Varianten ausprobiert.

Zitat:
Es wäre auch empfehlenswert, das Error-Logging einzuschalten, um zu sehen, ob PHP etwaige Fehlermeldungen ausgibt, die den Browser nicht mehr erreichen:
im log stehen nur leere Variablen:

Zitat:
"[18-Jun-2007 11:13:16] PHP Notice: Undefined variable: optionen in /home/www/web0/html/...."
also keine ERRORS oder WARNINGS

Ich habe jetzt die gleiche csv-Datei bestimmt 50 mal durch das Script laufen lassen, davon hat es 10 mal ohne Probleme geklappt, 40 mal waren alle Daten in der DB vorhanden aber ich hatte im Browser keine echo-Ausgabe.

Ist schon komisch, mal klappt's mal nicht!?

Ich hab auch verschiedene Browser probiert Firefox2, IE7, Opera9 und Konquere.

Ich werde jetzt nochmal mysql unter die Lupe nehmen, vielleicht finde ich da was.

Bis ich den Fehler gefunden habe werde ich die großen csv-Dateien einfach aufteilen.

Trotzdem vielen Dank für Deine Hilfe.

Gruß Michael
Mit Zitat antworten
  #4  
Alt 18.06.2007, 11:59:39
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Browser bricht Verbindung ab

Du kannst mal ausprobieren, nach jeder Ausgabe explizit die Funktion flush() aufzurufen. Alternativ kannst du auch implicit_flush() aktivieren.
Mit Zitat antworten
  #5  
Alt 18.06.2007, 14:31:17
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Browser bricht Verbindung ab

Zitat:
Zitat von -=LUPO=- Beitrag anzeigen
Ist schon komisch, mal klappt's mal nicht!?
Naja, so ein Browser will etwas zu knabbern haben, wärend er wartet. Ein paar ungepufferte Echos - ohne HTML Tabellen! - beschäftigen den Kollegen zwar etwas, aber die Geduld ist nicht grenzenlos.

btw: solche Aktionen, 200.000 Datensätze hinzufügen, lassen ein größeres Projekt vermuten. Normalerweise mietet man sich dafür einen Server, weil es da kein Problem ist, die CSV Files per crontab und shell (CLI) zu importieren und dem Absender nach erfolgreichen Import eine Email zu schicken. Ist wesentlich effizienter als Ping-Pong mit dem Client zu spielen.
Mit Zitat antworten
  #6  
Alt 20.06.2007, 06:16:16
-=LUPO=- -=LUPO=- ist offline
Anfänger
 
Registriert seit: Sep 2006
Beiträge: 20
AW: Browser bricht Verbindung ab

Hallo zusammen,

Zitat:
Zitat von xabbuh Beitrag anzeigen
Du kannst mal ausprobieren, nach jeder Ausgabe explizit die Funktion flush() aufzurufen. Alternativ kannst du auch implicit_flush() aktivieren.
Sehr guter Vorschlag :)
Damit müsste es doch auch möglich sein eine Fortschritt-Anzeige "zu basteln"

Zitat:
Zitat von meikel Beitrag anzeigen
Naja, so ein Browser will etwas zu knabbern haben, wärend er wartet. Ein paar ungepufferte Echos - ohne HTML Tabellen! - beschäftigen den Kollegen zwar etwas, aber die Geduld ist nicht grenzenlos.
Klar, Du musst ja auch was knabbern, wenn Du nicht verhungern willst ;)

Zitat:
Zitat von meikel Beitrag anzeigen
btw: solche Aktionen, 200.000 Datensätze hinzufügen, lassen ein größeres Projekt vermuten. Normalerweise mietet man sich dafür einen Server, weil es da kein Problem ist, die CSV Files per crontab und shell (CLI) zu importieren und dem Absender nach erfolgreichen Import eine Email zu schicken. Ist wesentlich effizienter als Ping-Pong mit dem Client zu spielen.
Ich habe einen eigenen Server, Dein Vorschlag "per crontab" ist zwar gut aber kann im Moment noch nicht umgesetzt werden weil die Dateien noch zu unterschiedlich sind und teilweise noch von Hand bearbeitet werden müssen. Nach der Vereinheitlichung werde ich die Dateien auf jeden Fall per crontab bearbeiten, man hat doch auch besseres zu tun als auf den Browser zu warten ;)

Vielen Dank an Lamau, xabbuh und meikel.

Gruß, Michael

Geändert von -=LUPO=- (20.06.2007 um 06:41:38 Uhr)
Mit Zitat antworten
  #7  
Alt 20.06.2007, 10:09:14
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Browser bricht Verbindung ab

Zitat:
Zitat von -=LUPO=- Beitrag anzeigen
Ich habe einen eigenen Server, Dein Vorschlag "per crontab" ist zwar gut aber kann im Moment noch nicht umgesetzt werden weil die Dateien noch zu unterschiedlich sind und teilweise noch von Hand bearbeitet werden müssen.
Ui... 200.000 Datensätze "zu fuß" editieren?

Zitat:
Nach der Vereinheitlichung werde ich die Dateien auf jeden Fall per crontab bearbeiten, man hat doch auch besseres zu tun als auf den Browser zu warten ;)
Mach den Test in der Shell! Die CSV-Files schickst Du entweder per SCP/FTP oder per Formular hin.

Schreibe in das Importscript janz oben vor dem PHP Tag eine shebang Zeile:
Code:
#!/usr/bin/php -q
Beachte, daß nach dem -q ein Linux-ENTER erwartet wird!
Dann kannste das Script, welches dann natürlich mit absoluten Pfaden arbeiten muß, ausführbar machen und in der Shell mit ./import.php starten.

So mache ich es zumindest, aber ich bin ja faul wie die Sünde. <g>
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
Loginproblem bei AOL Browser koerschgen2001 PHP Grundlagen 11 20.03.2006 14:51:47
Problem mit Sessionweiterleitung mittels header() in Verbindung mit Cookies zUPwire PHP für Fortgeschrittene und Experten 14 16.03.2006 18:24:03
browser abfragen matin PHP Grundlagen 2 19.01.2006 20:28:23
zuverlässige Browser abfrage Neofox HTML, CSS und JavaScript Help! 3 27.07.2004 15:46:35
dbglistener baut verbindung zu einem server im internet auf crusader PHP für Fortgeschrittene und Experten 5 09.02.2004 07:36:33


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


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


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