String nur Zahlen zurück geben
Sahra
- php
0 King^Lully0 Micha0 rob
Hallo meine lieben,
war ja lange nicht mehr hier mache aber auch sehr viel nur noch mit Typo3. Jetzt durfte ich aber wieder mal was feines coden. *freu*. Aber gleich gibbet auch ein Problem: Wie bekomme ich aus dem String "blabla 45687" nur die Zahlen zurückgegeben? Muß ich da jedes Zeichen nachschauen ob es ein Buchstabe oder ne Zahl ist oder gibt es da schon was cooles kleines?
Bis dann
Sahra
Muß ich da jedes Zeichen nachschauen ob es ein Buchstabe oder ne Zahl ist oder gibt es da schon was cooles kleines?
Das scheint mir was für reguläre Ausdrücke zu sein:
http://de3.php.net/manual/de/ref.pcre.php
http://de3.php.net/manual/de/reference.pcre.pattern.syntax.php
Irgendwas mit:
\d
any decimal digit
?
Hallo Sahra,
bei Deinem Beispiel musst Du ja nur den Unterstring ab dem Leerzeichen nutzen.
Mit freundlichem Gruß
Micha
Hi!
Wie bekomme ich aus dem String "blabla 45687" nur die Zahlen zurückgegeben? Sind diese Strings alle auf die gleiche Art und Weise aufgebaut?
Also "Buchstaben, Leerzeichen, Ziffern"?
Wenn das der Fall sein sollte, dann kannst du mit Stringfunktionen arbeiten.
Du könntest dann mit strrchr() die Position des Leerzeichens ermitteln und dir mit substr() den gewünschten Teil deines Strings zurückgeben lassen.
Wenn der Buchstabenteil deines Strings immer die gleiche Länge haben sollte, wird es noch einfacher.
Sollten deine Strings immer anders aufgebaut sein, so daß sich dort nicht jedesmal ein Leerzeichen vor dem Ziffernteil befindet, kannst du mit regulären Ausdrücken arbeiten, z.B. mit preg_match().
Neben den PERL-kompatiblen regulären Ausdrücken bietet PHP auch noch Funktionen für reguläre Ausdrücke nach POSIX (bzw. POSIX erweitert).
Du solltest aber nur die PRCE-Funktionen einsetzen. Diese arbeiten um einiges schneller.
Wenn es möglich ist und du mit Stringfunktionen auskommst, dann solltest du diese auch nutzen und keinen regulären Ausdruck einsetzen.
Der Geschwindigkeitsunterschied zwischen Stringfunktionen und regulären Ausdrücken ist enorm.
Reguläre Ausdrücke sind zwar unheimlich mächtig, dafür aber auch ziemlich langsam.
Schöner Gruß,
rob