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