13-stellige Zahlen aus Text filtern
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
- 
    
    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?
- 
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden! lima-city: Gratis werbefreier Webspace für deine eigene Homepage 
- 
    
    Ähm... Am Einfachsten geht das über einen regulären Ausduck.
 .Ob das der effizienteste Weg ist - darüber lässt sich streiten.[0-9]{13}
 Beitrag zuletzt geändert: 14.3.2020 21:18:09 von noxious
- 
    
    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.
- 
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden! lima-city: Gratis werbefreier Webspace für deine eigene Homepage 

