Zitat:
Original geschrieben von sourcecode
Immer wieder der gleiche und dumme Fehler!
Du darfst niemals preg_match verwenden, wenn du nach FESTEN Zeichen(ketten) suchst. preg_match ist dafür gedacht, wenn du nach bestimmten Mustern suchst, wo jedes einzelne Zeichen einer (langen) Zeichenkette innerhalb eines bestimmten Bereichs liegen kann. Eine einfache Zeichensuche verbraucht nun mal weniger Resourcen als preg_match.
|
Achja das waere mir neu. Der Funktins - Name (preg_match) beschreibt doch eigentl. schon genug um deine Behauptung zu verwerfen.
Wie wuerdes du denn nun einen String darauf ueberpruefen das nur bestimmte Zeichen drin vorkommen?
1:
PHP-Code:
if (strspn($input, 'abc...zABC...Z')) != strlen($input)) {...}
Hab ich gebenchmarkt und ist immer langsamer wie preg_match()
(Mit diesem sollte dann auch klar sein wie man die for - Schleife vermeiden kann:)
PHP-Code:
if (strcspn($input, implode('', $checkasii)) != strlen($input))
2:
PHP-Code:
if (ctype_alpha($input)) {...}
ist abhaengig von der php Version. (In verschiedenen Versionen match er auf verschiedene Zeichen)
3:
PHP-Code:
if (preg_match()) ...
Dabei kann nichts schief gehen. Und unperformant sind preg_* nicht!
Andre