kostenloser Webspace werbefrei: lima-city


13-stellige Zahlen aus Text filtern

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Hallo,

    ich möchte aus einem Text 13-stellige Zahlenfolgen herausfiltern.

    Beispiel:
    blabla1234567890123blabla2345678901234

    Dafür habe ich mir folgenden Code gebastelt:
    <?php 
    $str = $_POST['text']; 
    $pattern = '/[0-9]{13}/'; 
    preg_match($pattern, $str, $matches); 
    
    $anzahl = count ( $matches );
     
    for ($x = 0; $x < $anzahl; $x++)
    {
        echo $matches . "<br />";
    }
    
    
    ?>


    Das mit der for-schleife funktioniert noch nicht. Wie muss ich meinen Code anpassen, damit das Skript mir alle 13-stelligen Zahlenkombinationen untereinander ausgibt?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ähm... Am Einfachsten geht das über einen regulären Ausduck.
    [0-9]{13}
    .Ob das der effizienteste Weg ist - darüber lässt sich streiten.

    Beitrag zuletzt geändert: 14.3.2020 21:18:09 von noxious
  4. Was du suchst ist preg_match_all

    Das Array, das von preg_match zurück kommt, enthält nur einen Treffer und dessen Subgruppen. (Wobei du im Regex keine Gruppen definiert hast, brauchst du in dem Fall auch nicht)

    Bei preg_match_all werden alle Treffer als zweidimensionales Array geliefert.

    Beispiel:
    <?php
    $str = $_POST['text'];
    $pattern = '/[0-9]{13}/';
    preg_match_all($pattern, $str, $matches);
    
    $anzahl = count($matches[0]);
     
    for ($x = 0; $x < $anzahl; $x++)
    {
        echo $matches[0][$x] . "<br />";
    }

    Auf die Weise bekommst du dann alle gefundenen Zahlenfolgen.
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!