WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » regulärer Ausdruck -> nach $ suchen » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von chip
Dann sind wir uns ja einig ;)
von raiserle
Da gebe ich Dir Recht.
Ich habe auch nicht gesagt, dass preg_match schneller ist als strpos, bzw wollte das nicht so formulieren (sry).

Aber in diesem Fall, war mein Gedanke schon bei, "Was ist, wenn 6 mal strpos aufgerufen werden muss, weil nie ein Zeichen drin vor kommt".
Das würde ja bedeuten, dass der komplette String von forn bis hinten 6 mal durchlaufen wird und dies war in meinen Gedanken eher langsamer, als ein regex anzusetzen.

Der Test hats ja auch gezeigt, was aber auch nur beim ersten Aufruf von strpos stimmt, wenn man gleich danach nochmal versucht, sind die Zeiten deutlich schneller als preg_match.

Ähm und noch was zu dem Pattern, das + kann dort auch weg, er soll ja bei einem von den 6 Zeichen eh abbrechen.


Gruß Henrik
von chip
OK, im ungünstigsten Fall ist strpos() wirklich langsamer. Aber, in den meisten Fällen (also nicht bei "synthetischen" Tests) ist strpos() durchaus schneller als preg_match().
von raiserle
@ chip:

Test 3 mal gemacht.
Beim ersten Aufruf der Seite, ist strpos def langsamer... 2-4 ms
wobei preg_match immer um die 0.7 - 1.2 ms liegt ...

(Testumgebung Text mit 415 Zeichen das $-Zeichen steht an der 103 Stelle.)
(das $-Zeichen ist bei mir im letzten Oder-block bei strpos-Prüfung)

Und warum auch denk bitte an die 6 mal, es seid denn es wird gleich im ersten Oder-block das Zeichen gefunden . Also musste er in meinem Beispiel erst
mit 5 Zeichen von Anfang bis Ende durchgehen, bis dann das $ geprüft wurde.

Beim 2ten mal des Aufrufs ist dann aber wirklich strpos schneller (Annahme, liegt im Speicher)

Gruß Henrik
von chip
Ja, du musst die Funktion sechs Mal aufrufen für sechs Zeichen. Aber da kann man sich auch schöne Funktionen basteln, die mehrere Zeichen suchen.

Kleiner Tipp: Mit array_map() oder array_walk() sollte es gehen, wobei du als Array einfach deine Zeichen verwendest.

Nach oben