fgetcsv
Kalle
- php
Hallo zusammen,
habe hier eine Suchroutine, die erst einmal das tut, was ich brauche:
Der Begriff "mm;02" wird gefunden und obwohl mehrfach im file (eintrag.txt) vorhanden, wird mir nur die letzte Zeile mit diesem Suchbegriff angezeigt:
mm;02;dd;01;hh;06;peter;x2;13:56
<?php
$such = "/\mm;02\b/i";
$eintrag = preg_grep($such, file('eintrag.txt'));
foreach ($eintrag as $anz)
$out = array($anz);
echo end($out);
?>
(eintrag.txt)
mm;01;dd;01;hh;00;bernd;x2;13:56
mm;02;dd;01;hh;01;bernd;x2;12:54
mm;03;dd;05;hh;02;holger;x2;13:33
mm;01;dd;01;hh;03;ute;x2;13:56
mm;01;dd;01;hh;05;peter;x2;13:56
mm;02;dd;01;hh;06;peter;x2;13:56
mm;08;dd;02;hh;15;doro;x22;10:30
mm;08;dd;07;hh;16;doro;x928;10:30
mm;04;dd;02;hh;22;bernd;x321;22:46
Nun brauche ich aber aus dieser Zeile
mm;02;dd;01;hh;06;peter;x2;13:56
nur den Namen, also Eintrag 6.
<?php
$such = "/\mm;02\b/i";
$eintrag = preg_grep($such, file('eintrag.txt'));
foreach ($eintrag as $anz)
$out = array($anz);
// echo end($out);
while ( !feof() ) {
$row = fgetcsv(end($out), 512, ";" );
echo ($row[6]);
}
?>
...so geht es leider nicht...
Wer hat bitte eine Lösung zu meiner Abfrage.
Danke und Gruß, Kalle
gudn tach!
<?php
$such = "/\mm;02\b/i";
$eintrag = preg_grep($such, file('eintrag.txt'));
foreach ($eintrag as $anz)
$out = array($anz);
echo end($out);
?>
unkonventionelle einrueckung! besser waere
foreach($eintrag as $anz)
$out = array($anz);
echo end($out);
oder
foreach($eintrag as $anz){
$out = array($anz);
}
echo end($out);
aber unabhaengig davon scheinst du nicht verstanden zu haben, was du da ueberhaupt machst (oder ich habe noch weniger ahnung von php als ich bisher dachte).
foreach ($eintrag as $anz)
$out = array($anz);
wozu soll das im kontext dienen?
hand aufs herz. wie lange hast du im php-handbuch auf den seiten zu preg_grep, foreach und fgetcsv verweilt?
prost
seth
Hallo Kalle,
$row = fgetcsv(end($out), 512, ";" );
Schau Dir in der Dokumentation an welche Parameter fgetcsv erwartet.
http://de3.php.net/manual/de/function.fgetcsv.php
An dieser Stelle könnte explode() bzw. split() ein geeigneteres Werkzeug sein.
Viele Grüße
lulu
Hallo Kalle,
$row = fgetcsv(end($out), 512, ";" );
Schau Dir in der Dokumentation an welche Parameter fgetcsv erwartet.
http://de3.php.net/manual/de/function.fgetcsv.phpAn dieser Stelle könnte explode() bzw. split() ein geeigneteres Werkzeug sein.
Hallo lulu, explode()war der Hinweis, der mich weitergebracht hat - super!
Vielen Dank und fröhliche Grüße, Kalle
Viele Grüße
lulu