svalona: suchfunktion *.txt datei auslesen

hi leute,

habe eine *.txt datei möchte die per suchformular auslesen und die ergebnisse bei der Ausgabe so anzeigen lassen (mit formatierungen) wie sie bei der normalen ausgabe erscheinen! kann mir jemand nen php code vorschlagen.

txt datei beispiel zeile (soll so ausgegeben werden mit formatierung)

<h1><a href="http://test.de" target="_blank"><img src="images/handelsblatt.jpg" border="1" align="left"></a></h1><p>textbeispiel<a href="http://test.de" target="_blank">&raquo;mehr</a><br clear="all"</font></p><hr />

  1. Ich kann dir nicht folgen - womöglich suchst du aber einfach nur readfile() ?

    1. ich gebe etwas ins suchformular und die z.b. suche.php soll das suchergebnis nach meine *txt beispielzeile mit formatierung ausgeben. ich habe es zur zeit so, wird aber nix mit formatierungen die in der txt stehen ausgegeben. brauche nen anderen php code, wie kann die txt zeile auch so ausgegeben werden??lg

      hier die txt zeile mit formatierung:

      <h1><a href="http://www.test.de" target="_blank"><img src="images/handelsblatt.jpg" border="1" align="left"></a></h1><p>Beispieltext <a href="http://www.test.de" target="_blank">&raquo;mehr</a><br clear="all"</font></p><hr />

      php code

      <?php  
      function findwort($wort=""){  
      /*  
      * Wenn wort leer ist, Funktion beenden.  
      */  
       if(strlen($wort)==0){  
        $gef_zeilen[]="Geben sie einen Suchbegriff ein";  
        return $gef_zeilen;  
       }  
      /*  
      * Datei zeilenweise in ein Array einlesen.  
      * 80 ist die Zeilenlänge, erhöhen falls nötig.  
      */  
      $i=0;  
       $f=fopen("zitate.txt","r");  
       while($line=fgets($f,80)){  
        $text_lines[$i]=$line;  
        $i++;  
       }  
       fclose($f);  
      /*  
      * Zeilenweise das Array mit der Funktion strpos durchsuchen.  
      * strpos arbeitet case-sensitiv, deshalb werden mit strtolower  
      * alle Groß- in Kleinbuchstaben umgewandelt.  
      */  
       $i=0;  
       while($i<count($text_lines)){  
        $pos = strpos(strtolower($text_lines[$i]),strtolower($wort));  
      	if($pos === false){  
      	 /*  
      	 * Wenn $pos false ist, tue nichts!!  
      	 */  
      	}else{  
      				$gef_zeilen[$i]="Der Suchbegriff \"$wort\" wurde in Zeile ".($i+1)." an Position $pos gefunden ==> ".htmlspecialchars($text_lines[$i]);  
      				}  
        $i++;  
       }  
       /*  
       * count zählt die Elemente im Array.  
       */  
       if(count($gef_zeilen)>0){  
        return $gef_zeilen;  
       }else{  
       			 $gef_zeilen[0]="Der Suchbegriff \"$wort\" wurde nicht gefunden";  
      			 return $gef_zeilen;  
      			 }  
      }  
      /*  
      * Ist das Formular gesendet, gibt die Funktion ein Array zurück, deshalb mit foreach ausgeben.  
      */  
      if(isset($_POST['suche'])){  
       $erg=findwort($_POST['suche']);  
       foreach($erg as $zeile){  
        echo "<p>$zeile</p>";  
       }  
      }  
      ?>
      
      1. ich gebe etwas ins suchformular und die z.b. suche.php soll das suchergebnis nach meine *txt beispielzeile mit formatierung ausgeben. ich habe es zur zeit so, wird aber nix mit formatierungen die in der txt stehen ausgegeben. brauche nen anderen php code, wie kann die txt zeile auch so ausgegeben werden??lg

        Bei dir muss man schon hart gesotten sein um zu verstehen, was du eigentlich willst.

        <h1><a href="http://www.test.de" target="_blank"><img src="images/handelsblatt.jpg" border="1" align="left"></a></h1><p>Beispieltext <a href="http://www.test.de" target="_blank">&raquo;mehr</a><br clear="all"</font></p><hr />

        Bitte RFC 2606 beachten, die Stiftung Warentest (bzw. deren Domain) möchte sicher nicht Missbraucht werden.

        /*
        * Datei zeilenweise in ein Array einlesen.
        * 80 ist die Zeilenlänge, erhöhen falls nötig.
        */
        $i=0;
        $f=fopen("zitate.txt","r");
        while($line=fgets($f,80)){
          $text_lines[$i]=$line;
          $i++;
        }
        fclose($f);

        Das geht mit file() wesentlich kürzer und effizenter.

        /*
        * Zeilenweise das Array mit der Funktion strpos durchsuchen.
        * strpos arbeitet case-sensitiv, deshalb werden mit strtolower
        * alle Groß- in Kleinbuchstaben umgewandelt.
        */
        $i=0;
        while($i<count($text_lines)){

        Bitte foreach verwenden

        $pos = strpos(strtolower($text_lines[$i]),strtolower($wort));
        if($pos === false){
        /*
        * Wenn $pos false ist, tue nichts!!
        */

        Yoda Conditions oder wie nennt man das? Warum nicht if($pos)?

          		$gef\_zeilen[$i]="Der Suchbegriff \"$wort\" wurde in Zeile ".($i+1)." an Position $pos gefunden ==> ".htmlspecialchars($text\_lines[$i]);  
        

        wozu das htmlspecialchars() wenn du doch das HTML im Klartext willst?

        /*
        * Ist das Formular gesendet, gibt die Funktion ein Array zurück, deshalb mit foreach ausgeben.
        */

        Jetzt auf einmal kennst doch foreach :)

        1. das sind ja schonmal ansätze ich möchte diese html zeile samt formatierung ausgelesen haben natürlich auch richtig angezeigt bekommen beim suchergebnis...wie lautet dann ein plausibler php code??

          html zeile

          <h1><a href="http://www.test.de" target="_blank"><img src="images/handelsblatt.jpg" border="1" align="left"></a></h1><p>Beispieltext <a href="http://www.test.de" target="_blank">&raquo;mehr</a><br clear="all"</font></p><hr />

          1. das sind ja schonmal ansätze ich möchte diese html zeile samt formatierung ausgelesen haben natürlich auch richtig angezeigt bekommen beim suchergebnis...wie lautet dann ein plausibler php code??

            Lese meinen Kommentar aufmerksam, ich denke ich habe deine Frage bereits beantwortet und stelle dann bitte eine ordentliche Frage die auch jemand, der halbwegs vernünftiges deutsch spricht, verstehen kann.

            html zeile

            <h1><a href="http://www.test.de" target="_blank"><img src="images/handelsblatt.jpg" border="1" align="left"></a></h1><p>Beispieltext <a href="http://www.test.de" target="_blank">&raquo;mehr</a><br clear="all"</font></p><hr />

            Ja, die wiederholst du bereits zum dritten mal - immer noch mit einem URL der Stiftung Warentest, obwohl ich dich bereits auf RFC 2606 hingewiesen habe.