Dateien zeilenweise auslesen - Anzahl der Zeilen ermitteln
Rainer
- php
0 cygnus0 ChrisB0 ChrisB
1 Christoph Jeschke
Hallo,
ich habe mir folgendes geschrieben:
<?php
$ZA = 0;
$files = "zeilen.csv";
$files_array = file($files);
for($x=0;$x<count($files_array);$x++){
$datei = "$files_array[$x]";
$array = file($datei);
$ZX = count($array);
$ZA = ($ZA + $ZX);
}
echo"Anzahl: $ZA";
?>
die csv:
index.php
cms/backend-cms.css
cms/backend.css
cms/backend.php
cms/footer.php
Steht in der .csv nur eine Zeile funktionert es. Stehen wie beschrieben mehrere Dateien inc. Pfade in der .csv geht es nicht mehr. Gebe ich mit echo <br />$datei aus steht alles korrekt da. Die Dateien existieren auch - aber die Ausgabe ist:
Warning: file(index.php ) [function.file]: failed to open stream: Invalid argument in G:\xampplite\home\servercms_de\zeilen.php on line 7
Warning: file(cms/backend-cms.css ) [function.file]: failed to open stream: Invalid argument in G:\xampplite\home\servercms_de\zeilen.php on line 7
Warning: file(cms/backend.css ) [function.file]: failed to open stream: Invalid argument in G:\xampplite\home\servercms_de\zeilen.php on line 7
Warning: file(cms/backend.php ) [function.file]: failed to open stream: Invalid argument in G:\xampplite\home\servercms_de\zeilen.php on line 7
Anzahl: 17
Stehe jetzt aber wirklich auf dem Schlauch. Was geht denn da nicht?
Gruß Rainer
Hallo :)
$files_array = file($files);
$array = file($datei);
Stehe jetzt aber wirklich auf dem Schlauch. Was geht denn da nicht?
Ich bin selbst noch sehr unsicher, aber ich meine, dass dort keine Variable stehen darf.
So verwende ich das:
$files_array = file("files.txt");
mfg
cygnus
Guten Tag,
Ich bin selbst noch sehr unsicher, aber ich meine, dass dort keine Variable
stehen darf.
Das ist PHP egal. Da kann ein Stringliteral, eine Konstante, ein Funktionsaufruf, eine Variable (und noch ein paar mehr) stehen.
Gruß
Christoph Jeschke
Hallo :)
Ich bin selbst noch sehr unsicher, aber ich meine, dass dort keine Variable
stehen darf.Das ist PHP egal. Da kann ein Stringliteral, eine Konstante, ein Funktionsaufruf, eine Variable (und noch ein paar mehr) stehen.
Danke für den Hinweis!
mfg
cygnus
Hi,
Warning: file(index.php ) [function.file]: failed to open stream: Invalid argument in G:\xampplite\home\servercms_de\zeilen.php on line 7
Wenn PHP sich ueber ein invalid argument beschwert - dann sollte doch wohl das allererste, was du machst, sein, dass du den Inhalt des Arguments, das du der Funktion uebergibst, mit einer Kontrollausgabe kontrollierst.
var_dump bietet sich dazu an.
Mach das also, und lasse uns an deiner Ueberraschung ueber den Inhalt der Variablen teilhaben.
MfG ChrisB
P.S.:
var_dump bietet sich dazu an.
Bitte <pre> </pre> um diese Ausgabe herum setzen, oder direkt aus dem Quellcode kopieren.
MfG ChrisB
Guten Tag,
Warning: file(cms/backend.php ) [function.file]: failed to open stream: Invalid argument in G:\xampplite\home\servercms_de\zeilen.php on line 7
Anzahl: 17
Da ist ein Leerzeichen hinter den Dateinamen. Du kannst bei file() den FILE_IGNORE_NEW_LINES- und FILE_SKIP_EMPTY_LINES-Parameter verwenden (das ist, zugegeben, in der deutschen Übersetzung des Manuals nicht enthalten, aber da solltest du eh nicht schauen).
Ansonsten würde ich nicht jeden File einlesen nur um zu schauen, wie viele Zeilen enthalten sind. Du kannst z.B. wc -l (wordcount) auf der Kommandozeile aufrufen, oder mit while, feof() und fgets() zählen, ohne den Inhalt einzulesen.
Gruß
Christoph Jeschke