[PHP5] preg_match_all - Anzahl der Treffer anzeigen

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

  • [PHP5] preg_match_all - Anzahl der Treffer anzeigen

    Hallo,

    ich habe gerade ien Brett vor dem Kopf, liegt wohl an der Uhrzeit...


    ich suche mit preg_match_all nach bestimmten Muster in einem Text, jetzt möchte ich gerne, ohne das ich großartig die $treffer auseinander nehme, wissen wieviele Treffer pregmatch gefunden hat.

    Wenn ich die Beschreibung auf php.net angucke, dann steht unten:

    Normalerweise beginnt die Suche am Anfang der Zeichenkette. Der optionale Parameter Versatz kann verwendet werden, um eine andere Stelle anzugeben, ab der gesucht werden soll. Der Parameter Versatz steht seit PHP 4.3.3 zur Verfügung.

    Anmerkung: Die Verwendung von Versatz entspricht nicht der Übergabe von substr($zeichenkette, $versatz) an Stelle der Zeichenkette an preg_match_all(), weil Suchmuster Angaben wie zum Beispiel ^, $ oder (?<=x) enthalten kann. Für Beispiele siehe preg_match().

    Gibt die Anzahl der Übereinstimmungen mit dem kompletten Suchmuster zurück (die auch Null sein kann) oder FALSE, falls ein Fehler auftrat.
    Sehe ich das Falsch oder fehlt beim letzen Satz irgendwo was? Weil das will ich ja haben --> "die Anzahl"

  • #2
    Die Funktion gibt dir einen Integer Wert mit dem gewünschten Ergebnis zurück. Also einfach:
    PHP-Code:
    $anzahl preg_match_all($pattern,$string,$treffer); 

    Kommentar


    • #3
      Hm, jetzt habe ich ein anderes Problem und zwar mit preg_replace:


      PHP-Code:
      $ein '[Hallo]';
      $erein 'HALLO';
      $text preg_replace ($ein$erein$text2); 
      es wechselt nur das Wort Hallo aus, ohne die Eckigen klammern. Wenn ich sie versuche mit \ zu makieren also:

      PHP-Code:
      $text preg_replace("\[Hallo\]""HALLO"$text2); 
      Bekomme ich eine Fehlermeldung

      Kommentar


      • #4
        Original geschrieben von Laire
        Bekomme ich eine Fehlermeldung
        Ja, so posten intelligente Menschen ...


        Ich vermute mal, dass was wegen Delimitern kommt ... also informiere dich, was die sind, und wofür man sie braucht.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Thx @ wahsaga,

          bin bei der Suche auf einen alten post von Dir gestossen, der mir geholfen hat:

          http://forum.de.selfhtml.org/archiv/2004/3/t74374/


          Jetzt meine nächste Frage, kann ich bei preg_replace mit arrays arbeiten wie bei str_replace?

          PHP-Code:
          $text str_replace(
          array(
          "ä""ö""ü""ß""Ä""Ö""Ü""\"""<"">"), 
          array(
          "&auml;""&ouml;""&uuml;""&szlig;""&Auml;""&Ouml;""&Uuml;""&quot;""&lt;""&gt;"), 
          $row[message]); 

          Kommentar


          • #6
            Original geschrieben von Laire
            Jetzt meine nächste Frage, kann ich bei preg_replace mit arrays arbeiten wie bei str_replace?
            Nein.

            Du könntest natürlich mehrere Suchmusterbestandteile per "oder" verknüpfen - aber das dürfte der Performance nicht eben zuträglich sein.

            Dann vielleicht doch lieber mit einer Schleife über ein Array laufen, und darin suchen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              @ Laire
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Ersatz
                Die Zeichenkette oder das Array mit Zeichenketten zum Ersetzen. Falls dieser Parameter eine Zeichenkette ist und der Parameter Suchmuster ein Array, werden alle Suchmuster durch diese Zeichenkette ersetzt. Falls sowohl Suchmuster als auch Ersatz Arrays sind, wird jedes Suchmuster durch das Gegenstück aus Ersatz ersetzt. Wenn das Ersatz-Array weniger Elemente hat als das Suchmuster-Array, wird jedes überzählige Suchmuster durch die leere Zeichenkette ersetzt.

                Kommentar

                Lädt...
                X