Hilfe für Suche benötigt!!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hilfe für Suche benötigt!!

    Schönen guten Tag,
    wer wäre so nett mir zu helfen. Bin noch PHP-Frischling bräuchte aber dringend für folgendes Problem ein kleines Script oder einen Hinweis wo ich nachlesen kann.

    Ich habe eine Textdatei in der Zeilenweise neue Einträge erfolgen.(name,url,email.. usw)
    Normal lese ich mit folgendem Script meine Datei aus:

    $dateiname="linkeintraege.txt";
    $lines=file($dateiname);
    $num=sizeof($lines);

    for ($i=count($lines)-1; $i>=0; $i--)
    {
    $zeile = explode('|', trim($lines[$i]));
    if($zeile[3]=="Thüringen"){
    echo...

    Ich möchte nun diese Textdatei Zeilenweise nach einer, vorher in eine Variable eingegebene Zeichenkette, durchsuchen. Im echo soll dann die ganze Zeile ausgegeben werden.

    Wer kann mir hierbei helfen?
    Vielen Dank im Voraus

    Mit freundlichen Grüßen aus Thüringen
    Stephan

  • #2
    Hi,

    also wenn Du in Variable $suchwort dein gesuchtes Wort hast, dann sollte das so gehen:

    if(eregi ($suchwort, $zeile[3]){
    echo "$zeile[0] - $zeile[1], usw.";
    }

    oder ?

    Gruß
    Thomas
    Gruß
    Thomas

    Comment


    • #3
      Leider nein

      Danke für die schnelle Antwort.

      Das funktioniert leider nicht.
      müßte aber, ich bekomme zwar keine Fehlermeldung, aber auch keine echo-Ausgabe.

      Mit freundlichen Grüßen aus Thüringen
      Stephan

      Comment


      • #4
        stimmt - irgendwie ist da auch schon der Wurm beim Auslesen der Datei drin...wenn Du Probleme hast setze am besten reichlich echo-Befehle in den Code so findet man am schnellsten zur Lösung.
        (hoffe das klingt nicht zu schulmeisterlich...;-))

        aber so sollte das gehen...

        Gruß
        Thomas
        Code:
        $dateiname = "test.txt";
        $lines     = file($dateiname);
        $num       = sizeof($lines);
        
        $suchwort  = "test";
        
        $fp        = fopen($dateiname,"r");
        
        for($i=0; $i < $num; $i++){
            $zeile[$i] = fgets($fp,4000);
            echo "i = $i - num = $num<BR>";
        
        $eintrag = explode('|&|', trim($zeile[$i]));
        
        if (eregi ($suchwort, $eintrag[1])){
        echo "$eintrag[0] - $eintrag[1], usw.";
        }
        }
        Nachtrag: naja schliessen sollte man die Datei auch wieder !
        Gruß
        Thomas

        Comment


        • #5
          So funktionierts, aber...??

          Hallo Thomas,

          Jetzt habe ich es so gemacht:
          Die $suche ist hier nicht aufgeführt, da sie aus einem Formular stammt.

          $dateiname="linkeintraege.txt";
          $lines=file($dateiname);
          $num=sizeof($lines);

          for ($i=count($lines)-1; $i>=0; $i--)
          {
          $zeile = explode('|', trim($lines[$i]));
          if(eregi($suche,$zeile[1] )){
          echo "$zeile[0] - $zeile[1] - $zeile[2] - $zeile[3] usw <br>";
          }
          }
          Das klappt prima, aber
          logisch das ich so nur Ausgaben mit Treffern aus Array-Element [1] bekomme. Das ding soll aber alle durchsuchen.
          Wenn ich nur(eregi($suche,$zeile )) eingebe, hab ich wieder keine Ausgabe.

          Werde blöd, was mach ich falsch.
          Nochmal, es soll auch in [2] [3] usw gesucht und gefunden werden.
          Danke für so viel verständnis.
          Mit freundlichen Grüßen aus Thüringen
          Stephan

          Comment


          • #6
            dann untersuch die Var $zeile bevor Du sie anhand des Trennzeichen trennst.

            if(eregi($suche,$zeile )){
            $zeile = explode('|', trim($lines[$i]));
            echo "$zeile[0] - $zeile[1] - $zeile[2] - $zeile[3] usw <br>";

            Gruß
            Thomas
            Gruß
            Thomas

            Comment

            Working...
            X