Blaubart: strpos und 'OR' wie geht das nur?

Beitrag lesen

Tach.

Und vermutlich auch sowas wie strlen(preg_split(...)[0]), falls das Ergebnisarray überhaupt mehr als ein Element hat?

ja, genau, inklusive zugehöriger Variablendeklarationen. Bei dem Anwendungsfall, den der OP andeutete, dürfte das der effizientere Algorithmus sein.

Kommt drauf an, woran Du diese Effizienz festmachst. Von der Laufzeit her dürfte das Arbeiten mit RegExps sogar schlechter abschneiden als die Zu-Fuß-Variante (spätestens, wenn man statt foreach in_array benutzt). preg_split erzeugt unnötigerweise ein neues Array mit Teilkopien der Zeichenkette, d. h. mehr Speicherbedarf. Bestimmte Suchzeichen müßten u. U. wegen ihrer Sonderbedeutung im RegExp escaped werden.

Effizienter würde ich das nicht nennen. Aber solange nicht gerade riesige Zeichenketten nach ebenso vielen Zeichen durchsucht werden, nehmen sich die unterschiedlichen Herangehensweisen wohl nicht viel. :)

--
Once is a mistake, twice is jazz.