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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
28.04.2008, 12:54:06
|
Anfänger
|
|
Registriert seit: Dec 2005
Beiträge: 34
|
|
file parser (hört einfach auf...)
hi,
ich habe einen parser gebaut, der ein csv file zeilenweise einliest, werte verändert und ein neues csv hinausschreibt. das funktioniert auch problemlos bei 'kleinen' files.
nur: wenn ich ein file mit zb 2.000.000 zeilen habe, dann bricht der parser einfach kommentarlos und ohne fehlermeldung bei - einmal 1.700.000 - einmal bei 1.800.00 etc. ab.
aber er schaffts nie durch. hat von euch jemand eine idee, was da los ist?
codebeispiel:
PHP-Code:
$handle = fopen ($importfile,"r");
$handle1 = fopen ($importfile1,"w");
$row = 0;
while(($data = fgetcsv ($handle, 4000, ",")) !== FALSE) {
$row++;
$line = "$data[0],$data[1],$data[2]\n";
echo("$row, ");
fwrite($handle1, $line);
}
fclose ($handle);
fclose ($handle1);
:
|
28.04.2008, 13:01:41
|
Senior Member
|
|
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
|
|
AW: file parser (hört einfach auf...)
PHP-Code:
if ($row%100==0) {
echo $row, ' ', memory_get_usage(), ' ', memory_get_peak_usage(), "\n";
}
Steigt der Speicherverbrauch?
__________________
Wat der Bauer nich kennt, dit frisster nich.
|
28.04.2008, 13:05:12
|
Anfänger
|
|
Registriert seit: Dec 2005
Beiträge: 34
|
|
AW: file parser (hört einfach auf...)
thnx für den hinweis, werd ich gleich testen.
weiters probler ich auch gerade socket_set_timeout aus, ev. übersteig ich da die 'default' werte...
|
28.04.2008, 13:05:56
|
Anfänger
|
|
Registriert seit: Aug 2007
Beiträge: 50
|
|
AW: file parser (hört einfach auf...)
Hallo,
kann es bei ca. 2.000.000 Datensätzen vielleicht hiermit zusammenhängen?
set_time_limit
|
28.04.2008, 13:08:44
|
Anfänger
|
|
Registriert seit: Dec 2005
Beiträge: 34
|
|
AW: file parser (hört einfach auf...)
also mit socket_set_timeout hats anscheinend nix zu tun.
memory steigt auch nicht (memory_get_peak_usage() konnte ich aber nciht aufrufen, kennt php net)
was ist da nur los??
|
28.04.2008, 13:10:42
|
Anfänger
|
|
Registriert seit: Dec 2005
Beiträge: 34
|
|
AW: file parser (hört einfach auf...)
Zitat:
Zitat von @Work
Hallo,
kann es bei ca. 2.000.000 Datensätzen vielleicht hiermit zusammenhängen?
set_time_limit
|
nein, hab ich auf 60*30 gestellt...
|
28.04.2008, 13:20:15
|
Senior Member
|
|
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
|
|
AW: file parser (hört einfach auf...)
socket_set_timeout?
Verwendest Du da irgendwo ein socket? Bspw. fopen('tcp://127.0.0.1', 'r')?
__________________
Wat der Bauer nich kennt, dit frisster nich.
|
28.04.2008, 13:52:57
|
Anfänger
|
|
Registriert seit: Dec 2005
Beiträge: 34
|
|
AW: file parser (hört einfach auf...)
nein, eh nicht.
|
28.04.2008, 14:08:37
|
Senior Member
|
|
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
|
|
AW: file parser (hört einfach auf...)
Testes Du immer die selbe Datei durch? Und bei dieser selben Datei bricht php mal hier mal da ab? Welche PHP Version benutzt Du?
__________________
Wat der Bauer nich kennt, dit frisster nich.
|
28.04.2008, 14:18:06
|
Anfänger
|
|
Registriert seit: Dec 2005
Beiträge: 34
|
|
AW: file parser (hört einfach auf...)
ich habs jetzt:
es ist die length bei fgetcsv
PHP-Code:
$handle = fopen ($importfile,"r");
$handle1 = fopen ($importfile1,"w");
$row = 0;
while(($data = fgetcsv ($handle, 4000, ",")) !== FALSE) {
$row++;
$line = "$data[0],$data[1],$data[2]\n";
echo("$row, ");
fwrite($handle1, $line);
}
fclose ($handle);
fclose ($handle1);
die hab ich hier auf 4000 - da dürften zeilen im csv länger werden, womit wie while schleife abbricht. setze ich das auf zb 8000 gehts problemlos.
was ist das eigentlich? bites? auf was kann man das maximal setzen?
hat das auswirkung, wenn ich da 100000 hinschreibe (auf memory etc.)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:51:32 Uhr.
|