Warum wird aus ' -> \' ?

Scared

Mitglied
Ich versuche mich gerade an Regulären Ausdrücken.
In meinem Code überprüfe ich mit preg_match einen eingegebenen Namen ob er zulässige Zeichen enthät. Welche Zeichen das sein sollen steht in meinem Pattern der folgendermaßen aussieht:

$name = "!^[-A-Za-z\^'_]+$!";

Wenn ich jetzt allerdings einfach nur ' als Name eingebe wird in meiner Schleife der else-zweig ausgeführt, d.h. ich habe einen ungültigen Namen eingegen.
Also habe ich mir den namen mit echo einfach ausgegen lassen und in der variablen ist nicht ' sondern \' gespeichert!

Meine Frage sind nun:
Warum ist das passiert?
Wie kann ich das verhindern, so das in der Variablen wirklich nur das steht was ich eingegeben habe?
Gibt es dieses Phänomen auch bei anderen Sonderzeichen?
 
[phpf]stripslashes[/phpf]

Gibt einen String ohne evtl. vorhandene "\" (Backslash) zurück (\' wird zu ' usw.). Doppelte Rückstriche ("\\") werden zu "\" umgesetzt.
 
Super, danke für den Tipp! :)
Nun frage ich mich allerdings immernoch warum es überhaupt dazu kam das aus meinem ' ein \' wurde. :suspekt:
 
Zurück