PHP PROBLEM - Zeilen aus Textdatei einzeln auslesen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
bestimmten stelle
count
datei
einschub
einzelne zeile
erste
funktion
genau meinst
letter
lngen
replacement
rckgabe
sen
string
test
thank
vielen dank
word
zeile
zeilennummer
-
Moie,
hab da mal ein Problem, bei dem ich nicht weiter komme:
und zwar m?chte ich gerne eine Zeile aus einer Text-Datei mit PHP auslesen/ausgeben k?nnen,
z.B. Zeile 3 oder Zeile 5.
Ich m?chte nur auf die einzelne Zeile zugreifen, nicht auf den Rest der Text-Datei.
Hat jemand ne Idee?
Thanks -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Datei als Array mit file() laden und gew?nschte Zeile ausgeben.
$lines = file ('text.txt'); // Alle Zeilen mit Zeilennummer ausgebn: foreach ($lines as $line_num => $line) { printf('Zeile #<b>%d</b> : %s <br>', $line_num, $line); } // eine Zeile ausgeben: echo $lines[1];
-
Klasse!
Vielen Dank, hat sehr gut geklappt!
Dann wird noch eine frage wahrscheinlich auch nicht schwer zu l?sen sein, worauf ich keine Antwort wei?:
Wie kann ich jetzt noch z.B. in dieser Zeile 3 auf die einzelnen Zeileninhalten, beispielsweise von 4 - 10 zugreifen?
MFG -
Was genau meinst du? Meinst du W?rter oder einfach nur Zeichen. Also wenn du die einzelenen W?rter herausfinden willst, dann kannst du die Funktion explode() benutzen.
<?php //W?rter in ein Array speichern $words = explode("", $lines[1]); //erstes Wort ausgeben print $words[0]; ?>
Wenn du nun auf verschiedene Zeichen zugreifen willst, kannst du substr() verwenden.
<?php //Das 4. - 10. Zeichen ausw?hlen $letters = substr($lines[1], 3, 9); //Ausgeben print $letters; ?>
Auf einzelne Zeichen kann man aber auch hinzugreifen, wenn man einfach geschweifte Klammern verwendet.
<?php $string = "kekse"; print $string{0}; //gibt "k" aus print $string{3}; //gibt "s" aus ?>
-
Und wie kann man das hier jetzt umkehren:
$letters = substr($lines[1], 3, 9);
also, das man genau in diese Zeile, genau an diese Stelle z.B. das Wort "Hallo" hinschreibt?! -
Daf?r gibt es leider keine vorgefertigte Version. Hmm, naja....es gibt doch eine. Ja, ich wei?, dass ich krank bin, aber ich habe daf?r eine Funktion geschrieben, und da ich nicht wusste, ob du ein Wort oder so nach einem bestimmten Wort oder einem bestimmten Zeichen eingef?gt haben willst, habe ich einfach beides m?glich gemacht. =)
Kommentare d?rften genug erkl?ren. Die Funktion an sich brauchst du nicht zu verstehen. Schau dir wenn du kein Bock hast einfach nur die Ausgabe, die unten steht, an.
<?php //Funktion zum Einfuegen eines Einschubs in einen String an einer bestimmten Stelle //$string : string //$insertion : string //$start : integer //(optional) //$words : boolean function str_insert($string, $insertion, $start, $words = true){ //Falls $words true ist, wird in Woertern unterschieden if($words){ //String in Woerter aufteilen $words = explode (' ', $string); //Zaehlen der Woerter $count = count($words) + 1; //Falls $start zu gross ist, so lange subtrahieren, bis es passt while($start > $count -1){ $start = $start - $count; } //String initialisieren $string = ''; //String zusammensetzen for($i = 0; $i < $count; $i++){ if($i == $start && $replacement != 'done'){ $string .= ' '.$insertion; $replacement = 'done'; $i--; } else{ $string .= ' '.$words[$i]; } } //Rueckgabe und Entfernen des Leerzeichens am Anfang return trim($string); } //Falls nicht wird in Zeichen unterschieden else{ //Ermitteln der Laenge des Strings $length = strlen($string); //Falls $start zu gross ist, so lange subtrahieren, bis es passt while($start > $length){ $start = $start - $length; } //Text in zwei Teile Teilen $token1 = substr($string, 0, $start); $token2 = substr($string, $start, $length); //Und Einschub dazwischenpacken $string = $token1.$insertion.$token2; //Rueckgabe return $string; } } $string = 'Dies ist ein Test!'; //Erzeugt: //Dies ist ein gelungener Test! print str_insert($string, 'gelungener', 3, true); print '<br />'; //Erzeugt: //Diegelungeners ist ein Test! print str_insert($string, 'gelungener', 3, false); ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage