Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem bei txt suche

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem bei txt suche

    Also ich habe ien script, das ein txt document durchsucht, und den gesuchten inhalt ausgibt.
    Siehe script:
    PHP-Code:
    <form name="neu2.php" method="post" action="<?=$PHP_SELF?>"> 
        <p align="left"> 
        <input name="wort" type="text" id="wort" value="<?=$_POST[wort]?>" size="20"> 
        <input type="submit" name="action" value="suchen"> </p>
    </form>


    <?php 
    if ($_POST[action]) {
        
    $kennwort "sl2.txt"

        print 
    "Die Koordinaten des Spielers '$wort' lauten: 

    "
    ;
            
        
    $file fopen($kennwort"r"); 
        while(
    $line fgets($file5000)) {
            
    $zeile++;
            if(
    strstr($line"$_POST[wort]")) {
                echo 
    "".nl2br($line)."";
            }
        }
        
    fclose($file); 

    ?>
    In diesem txt doc sind einträge durch %| getrennt. Jetzt möchte ich, das wenn ich den text durchsucht habe, und er ausgegeben wird, nicht

    Eintrag1%|Eintrag2%|Eintrag3 steht sondern.
    in einer Tabelle
    1|2|3
    Eintrag1 Eintrag2 Eintrag3.
    Dafür verwendet man den glaube ich den befehl
    $eintrag = explode("%|", trim($zeile)) ;
    Doch verstehe ich jetzt nicht, wie das script jetzt aussehen müsste.
    Denn
    $eintrag = explode("#", trim($zeile)) ;
    speichert die dateien in Arrys.
    etwa
    $eintrag[0]
    $eintrag[1]
    $eintrag[2]

    Kann mir einer das script so umschreiben, das es so klappt, wie ich es erklärt habe???
    Is ja kein langes script. sollte für einen könner nicht viel zeit beanspruchen.

    Ich bedanke mich schon mal Herzlich.
    MFG Marian


    ?>[/php]


  • #2
    Kann mir einer das script so umschreiben, das es so klappt, wie ich es erklärt habe???
    Und warum machst du das nicht selber? Du hast alles richtig beschrieben, jetzt musst du das nur noch in PHP umsetzen.
    sollte für einen könner nicht viel zeit beanspruchen.
    Stimmt, trotzdem mache ich es nicht, weil du das selber hinbekommen kannst, wenn du dir mal etwas Mühe gibst. Denn dieses Problem ist auch von Anfänger lösbar.

    Gruß
    phpfan

    Kommentar


    • #3
      Habe ich ja schon versucht.
      Mein problem fängt bei dem echo befehl an.
      echo "".nl2br($line)."";

      foppen weist ja $file den text zu.
      Dann ließt fgets den text aus.
      dann wird der text durcuscht. Mit strstr.
      Und dann muss ich die sache ja trennen.
      Also
      $eintrag = explode("%|", trim($zeile)) ;
      Und jetzt kommt mein problem.
      .nl2br($line). <-- was macht denn das???
      Kann ich das dann weg lassen oder wie soll ich das machen?
      Und an diese stelle dann die tabelle setzen in die das rein soll?

      Hoffe du kannst noch en bischen Hilfe leisten. Dann schaffe ichs vieleicht selber.

      MFG Marian

      Kommentar


      • #4
        Im moment siehts so aus:

        PHP-Code:
        <form name="neu2.php" method="post" action="<?=$PHP_SELF?>"> 
            <p align="left"> 
            <input name="wort" type="text" id="wort" value="<?=$_POST[wort]?>" size="20"> 
            <input type="submit" name="action" value="suchen"> </p>
        </form>


        <?php 
        if ($_POST[action]) {
            
        $kennwort "sl2.txt"

            print 
        "Die Koordinaten des Spielers '$wort' lauten: 

        "
        ;
                
            
        $file fopen($kennwort"r"); 
            while(
        $line fgets($file5000)) {
                
        $zeile++;
                if(
        strstr($line"$_POST[wort]")) 
                {
                
        $eintrag explode("%|"trim($line)) ;
                    echo 
        "<table border=\"1\"><tr>";
                    echo 
        "<td>$eintrag[0]</td>";
                    echo 
        "<td>$eintrag[1]</td>";
                    echo 
        "<td>$eintrag[2]</td>";
                    echo 
        "<td>$eintrag[3]</td>";
                    echo 
        "<td>$eintrag[4]</td>";
                    echo 
        "</tr></table>";
                }
            }
            
        fclose($file); 

        ?>
        Leider ist die ausgabe nicht die, die ich erwartet habe.
        Wo liegt der fehler??

        Kommentar


        • #5
          PHP-Code:
          <?php
          if ($_POST['action']) {
          if(
          strstr($line$_POST['wort']))  
          ?>

          maybe ^^

          Kommentar


          • #6
            PHP:

            <?php
            if ($_POST['action']) {
            if(strstr($line, $_POST['wort']))
            ?>


            maybe ^^
            wass soll mir das jetzt sagen?

            Kommentar


            • #7
              PHP-Code:
              <?php
               
              if(strstr($line$_POST['wort']) !== false)
              ?>
              Gruß
              phpfan

              Kommentar


              • #8
                Schon gut. Das alte script geht auch.
                Habe nur ne kleine dummheit begangen, im Richtigen quellcode.

                PHP-Code:
                <?php  
                if ($_POST[action]) { 
                    
                $kennwort "sl2.txt";  

                    print 
                "Die Koordinaten des Spielers '$wort' lauten: 

                "

                         
                    
                $file fopen($kennwort"r");  
                    while(
                $line fgets($file5000)) { 
                        
                $zeile++; 
                        if(
                strstr($line"$_POST[wort]"))  
                        { 
                        
                $eintrag explode("%|"trim($zeile)) ; 
                            echo 
                "<table border=\"1\"><tr>"
                            echo 
                "<td>$eintrag[0]</td>"
                            echo 
                "<td>$eintrag[1]</td>"
                            echo 
                "<td>$eintrag[2]</td>"
                            echo 
                "<td>$eintrag[3]</td>"
                            echo 
                "<td>$eintrag[4]</td>"
                            echo 
                "</tr></table>"
                        } 
                    } 
                    
                fclose($file);  
                }  
                ?>
                Heist der fehler war hier:
                $eintrag = explode("%|", trim($zeile)) ; <-- Falsch
                $eintrag = explode("%|", trim($line)) ; <--Richtig

                Problem gelöst.
                MFG Marian

                Kommentar


                • #9
                  Weis ja nicht, geht es nicht einfacher das TXT-File mit file() einzulesen ?

                  Kommentar

                  Lädt...
                  X