Ankündigung

Einklappen
Keine Ankündigung bisher.

mit preg_match alle treffer anzeigen lassen?

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mit preg_match alle treffer anzeigen lassen?

    Guten Tag,

    hab eine dumme frage, und zwar, wie kann ich mit preg_match alle Treffer mir anzeigen lassen?

    habe vor mit dem Code eine Text zu durchsuchen und mit dann alle Treffer anzeigen zu lassen, so weit bin ich schon gekommen, aber ich weiß jetzt nicht mehr weiter^^, hoffentlich kann mir jemand helfen.

    ip.php:
    PHP-Code:
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>ip filter</title>
    </head>

    <body>

    <?php
        $string 
    $_POST["iptext"];
        if (
    preg_match('/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/',$string$titel)) {
        echo 
    $titel ;
        }
    ?>

    <form id="form1" name="form1" method="post" action="ip.php">
      <p>
        <label for="iptext"></label>
        <textarea name="iptext" id="iptext" cols="45" rows="5"></textarea>
      </p>
      <p>
        <input value="Lets go!" type="submit" />
      </p>
    </form>

    </body>
    </html>

  • #2
    preg_match_all benutzen...

    Kommentar


    • #3
      preg_match_all

      Kommentar


      • #4
        hmm... okay hätte ich mir eigentlich denken können... aber es klappt leider immer noch nicht.

        hier mal der code wie er soweit ist:

        PHP-Code:
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>ip filter</title>
        </head>

        <body>

        <?php
            $string 
        $_POST["iptext"];
            if (
        preg_match_all('/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/'$titel$stringPREG_PATTERN_ORDER)) {
            echo 
        $titel[0] ;
            }
        ?>

        <form id="form1" name="form1" method="post" action="ip.php">
          <p>
            <label for="iptext"></label>
            <textarea name="iptext" id="iptext" cols="45" rows="5"></textarea>
          </p>
          <p>
            <input value="Lets go!" type="submit" />
          </p>
        </form>

        </body>
        </html>
        wo ist da der Fehler?

        Kommentar


        • #5
          Zitat von little_evil Beitrag anzeigen
          aber es klappt leider immer noch nicht.
          Und das heisst genau... was?

          Beschreibe uns erstmal, was du überhaupt erreichen willst mit deinem Pattern, dazu natürlich die zu prüfenden Daten - nur dann macht ein "Klappt nicht" eventuell noch Sinn.

          Kommentar


          • #6
            das er mit die ips nicht aus dem text holt und anzeigt!?

            Kommentar


            • #7
              Zitat von little_evil Beitrag anzeigen
              wo ist da der Fehler?
              An der Stelle, wo du „klappt nicht“ für eine aussagekräftige Problembeschreibung hältst.

              Kommentar


              • #8
                Welche IP's? Welcher Text?

                Wir sehen lediglich das:
                PHP-Code:
                <?php
                    $string 
                $_POST["iptext"];
                    if (
                preg_match_all('/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/'$titel$stringPREG_PATTERN_ORDER)) {
                    echo 
                $titel[0] ;
                    }
                ?>
                und wir können nicht in deinen Kopf oder auf deinen Bildschirm schauen...

                Kommentar


                • #9
                  Stelle bitte als erstes das error_reporting vernünftig ein.
                  http://www.php.de/wiki-php/index.php..._Fehlerausgabe

                  Kommentar


                  • #10
                    so wie es aussieht hab ich schon mal was vertauscht, zeile 15 $titel mit $string,:
                    PHP-Code:
                    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                    <html xmlns="http://www.w3.org/1999/xhtml">
                    <head>
                    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                    <title>ip filter</title>
                    </head>

                    <body>

                    <?php
                    error_reporting 
                    (E_ALL E_STRICT);
                    ini_set ('display_errors' 1);

                        
                    $string $_POST["iptext"];
                        if (
                    preg_match_all('/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/'$titel$stringPREG_PATTERN_ORDER)) {
                        echo 
                    $string[0] ;
                        }
                    ?>

                    <form id="form1" name="form1" method="post" action="ip.php">
                      <p>
                        <label for="iptext"></label>
                        <textarea name="iptext" id="iptext" cols="45" rows="5"></textarea>
                      </p>
                      <p>
                        <input value="Lets go!" type="submit" />
                      </p>
                    </form>

                    </body>
                    </html>
                    aber daran lag es auch nicht.

                    fehler meldung kommt folgende:

                    Notice: Undefined variable: titel in /public_html/ip.php on line 15

                    Text sieht folgender maßen aus:

                    Code:
                    127.0.0.1 text text
                    text text
                    mehr text
                    text 127.0.0.2 text 
                    text 127.0.0.3 text text
                    und da möchte ich halt das er mir dann nur die ips anzeigt. Text = irgendwelche Buchstaben, Zahlen und Zeichen.


                    So ich hoffe jetzt versteht ihr was ich meine, Entschuldigung nochmal für meine schlechte Ausdrucksweise oben.

                    Kommentar


                    • #11
                      Zitat von little_evil Beitrag anzeigen
                      fehler meldung kommt folgende:

                      Notice: Undefined variable: titel in /public_html/ip.php on line 15
                      Natürlich, wenn du die Parameter in der falschen Reihenfolge angibst.

                      und da möchte ich halt das er mir dann nur die ips anzeigt.
                      Dein Eingabetext besteht nicht nur aus einer IP.
                      Dein Ausdruck verlangt dies aber.

                      Mach dir klar, wofür ^ und $ stehen.
                      Und beschäftige dich generell mit den Grundlagen regulärer Ausdrücke, wenn du sie einsetzen willst.

                      Kommentar


                      • #12
                        ich gebs auf... ich bekomme noch Kopfschmerzen von den RegEx... hab zwar jetzt noch ein einfachen ip regex gefunden und ein bisschen bearbeitet aber damit klappt das auch nicht:

                        Code:
                        #(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b)#s
                        wenn jemand Lust hat kann er ja mein Script vervollständigen, ich hab keine Lust mehr drauf! da such ich mir ja lieber die IPs manuell raus...

                        danke nochmal an euch alle, aber ich bin zu ungeduldig für so was. vielleicht setze ich mich die Tage nochmal ran wenn ich mehr Zeit mit bringen kann.

                        Kommentar


                        • #13
                          vlt hilft dir das ja weiter
                          http://php.net/manual/en/function.preg-match.php
                          PHP-Code:
                          <?php 
                          function valid_ip($ip) { 
                              return 
                          preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])" 
                                      
                          "(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/"$ip); 

                          ?>

                          Kommentar


                          • #14
                            wenn jemand Lust hat kann er ja mein Script vervollständigen, ich hab keine Lust mehr drauf!
                            Juhu, Feierabend!

                            [MOD: Thread geschlossen]

                            Kommentar

                            Lädt...
                            X