Hallo Andy,
if (preg_match("/[(user)(menu)(cart)]/",$PHP_SELF)) { ... }
damit trifft der Ausdruck zu, wenn eines der Zeichen »acemnrstu()« in $PHP_SELF vorkommt (btw: warum nicht $_SERVER['PHP_SELF']?).
ob sich der User auf einer Seite "user", "menu", "cart" befindet, oder nicht.
dann brauchst du als Ausdruck eher sowas wie (ungetestet):
/(user|menu|cart)/
- das Findet dir »user« oder »menu« oder »cart«.
habe ich 3 Teilausdrücke,
die von eckigen ODER Klammern umrahmt sind.
die ecken Klammern bewirken kein »oder« sondern definieren eine Zeichenklasse.
P.s.: Kann ich das auch mit strpos() oder irgendwas schnellerem
als preg_match() realisieren?
ja, etwa so: (ungetestet)
if(strpos($_SERVER['PHP_SELF'],'user') !== false){
echo 'user';
}
(das was in if() steht natürlich mehrmals mit »or« getrennt) ich weiß aber nicht, ab wievielen strpos() sich eine regulärer Ausdruck rentiert.
Grüße aus Nürnberg
Tobias