kostenloser Webspace werbefrei: lima-city


PHP PROBLEM - Zeilen aus Textdatei einzeln auslesen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    zocca

    zocca hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. k**********e

    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];
  4. Autor dieses Themas

    zocca

    zocca hat kostenlosen Webspace.

    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
  5. 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
    ?>
  6. Autor dieses Themas

    zocca

    zocca hat kostenlosen Webspace.

    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?!
  7. 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);
    ?>
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!