datei auslesen und anzahl fest stellen
andi
- php
0 Severin Kacianka0 Tom0 andi
hallo,
ich lese eine textdatei aus jetzt gibt es einträge die nicht mit gezählt werden sollen.
wie fange ich das an
if (file_exists("datei.csv"))
{
$lines=file("datei.csv");
$num = sizeof($lines);
}
damit erhalte ich alle einträge
datei.csv
name | titel | meldung | datum
alles nicht anzeigen mit einem bestimmten namen
wie geht das?
danke
Hallo,
wie geht das?
Ich verstehe nicht so ganz was du eigendlich willst. Aber wenn du mit csv Datein arbeitest solltest du dir vielleicht fgetcsv ansehen.
Gruß,
Severin
hi,
was ich will?
ich will nicht alle datensätze aus der textdatei zählen sondern nur bestimmte.
also eine bedingung z.b. alle die den namen müller haben bitte zählen
wie stelle ich das an???
Hello,
ich will nicht alle datensätze aus der textdatei zählen sondern nur bestimmte.
also eine bedingung z.b. alle die den namen müller haben bitte zählen
wie stelle ich das an???
Indem Du nur die zählst, die nicht den Namen 'müller' enthalten ;-)
Achte ggf. auch auf Groß-Kleinschreibung.
Da muss die Bedingung dann eventuell so aussehen:
$ausschlusswert = strtolower($ausschlusswert);
while ... -->
if (strtolower($_rec[$col]) != $ausschlusswert) $num++;
<--
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
Die Funktion file() ist nicht für CSV-Dateien geeignet, da CSV-Dateien auch Zeilenumbrüche innerhalb der eingeschlossenen Feldwerte haben können, die NICHT das Datensatzende bedeuten.
File() reagiert aber auf jeden Zeilenumbruch als Satzende.
Wenn Deine CSV-Datei sauber aufgebaut ist, alos alle Felder jeweils in Begrenzer eingeschlossen sind, Begrenzerzeichen innerhalb eines Datenfeldes durch Doppelung maskiert sind, dann kannst Du die Daten aus der Datei folgendermaßen in ein zweidimensionales Array übertragen:
$maxrecsize = 10000; #(Maximale Datensatzgröße)
$seperator = ','; # Feld-Trennzeichen
$enclosure = '"'; # Feldwert-Begrenzer
$_data = array();
$fh = fopen($dateiname,'r');
if ($fh)
{
while (!feof($fh))
{
$_data[] = fgetcsv($fh,$maxrecsize,$seperator,$enclosure);
}
}
in $_data[$n][$col] findest Du dann den Feldwert.
$n ist die lfd. Nummer des Datensatzes im Array (beginnend bei 0) und
$col ist die Feldnummer im Datensatz (beginnend bei 0).
Wenn Du nun weißt, in der wievielten Spalte der gesuchte Wert steht, kannst Du ja ganz einfach zählen:
$num = 0;
if(is_array($_data))
{
foreach($_data as $key => $_rec)
{
if ($_rec[$col] != $ausschlusswert) $num++;
}
}
echo "Die Datei enthält $num Datensätze ohne den Begriff $ausschlusswert in der $col"."ten Spalte";
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
hi,
danke
ja genau was ich suchte und vielen dank für die zusatz infos