Hi Zusammen
Ich möchte eine bestimmte Zeile aus einer TXT-Datei ausgeben. Wie krieg ich das hin?
Grüsse
MadGeek
Ich möchte eine bestimmte Zeile aus einer TXT-Datei ausgeben. Wie krieg ich das hin?
Grüsse
MadGeek
<?php
// hier werden die zu suchenden Dateien (anhand der extension) sowie der Ordnerpfad, wo die Dateien liegen, gesetzt
// Ferner wird gesetzt, welche Zeilen gelesen werden sollen (wird als array definiert) ==> Zeilennummer eingeben, mit Komma trennen. Im Beispiel unten werden die Zeilen 1, 2, 3 und 4 gelesen.
// In diesem Falle sehr wichtig, es hat mich Stunden gekostet, ist die Funktion rewind. Wird diese nicht gesetzt, dann geht die Schlaufe for($j=0 .........) unwiderruflich nur einmal durch und nicht $numzeilen-mal!!!!!!!!
// HIER SIND DIE GEWÜNSCHTEN/ERFORDERLICHEN DATEN ZU SETZEN
//***********************************************************************************************************
$pfad = "C:/Dokumente und Einstellungen/Administrator/Desktop/Neuer Ordner/000/members/";
$extension = "dat";
$lieszeile = array(1,2,3,4);
$trennzeichen = ";"; // dieses Trennzeichen trennt die in der Datei gefundene Zeilen (für Verwendung in Datenbank)
//************************************************************************************************************
// ermittelt die Anzahl zu lesende Zeilen
$numzeilen = count($lieszeile);
// ermittelt die Länge der extension
$extensionlaenge = strlen($extension);
// DAS IST DIE ROUTINE ********************************************************************************
$verzeichnis = opendir($pfad);
while (false !== ($file = readdir ($verzeichnis)))
{
$laengedat = strlen($file);
$namedat = substr($file, 0, $laengedat-$extensionlaenge-1);
$extensiondat = substr($file, $laengedat-$extensionlaenge, $extensionlaenge);
if ($extensiondat == $extension)
{
$filepfad = $pfad . $file;
$fp = fopen($filepfad, "r");
$zeile = $namedat . $trennzeichen;
for ($j=0; $j<$numzeilen; $j++)
{
rewind($fp);
$i=0;
while (!feof($fp))
{
$i = $i+1;
$temp = trim(fgets($fp, 100000)); // die gelesene Zeile wird getrimmt wg. allf. Leerzeichen
if ($i == $lieszeile[$j]) $zeile .= " " . $temp . $trennzeichen;
}
}
echo $zeile . "<br>";
fclose($fp);
}
}
closedir($verzeichnis);
?>
Kommentar