Hallo Tom,
Zitat aus dem OP:
eine php-funktion, die mir einen string convertiert. Der string soll danach nur noch aus buchstaben und zahlen bestehen also frei von jeglichen sonderzeichen sein.
Wenn Du statt preg_replace() preg_match() benutzt und die gegenwärtige Komplementärmenge zu der von Dir genannten, dann stimmt es wieder.
Du hast einen String #123~abc@-+
Du ersetzt mit preg_replace() alles, was nicht a-Z0-9 ist, also #~@-+, uebrig bleibt 123abc, also ein String, der nur aus Zahlen und Buchstaben besteht (das mit dem _ hatte ich ja bereits erwaehnt).
Erklaer mir bitte, wie du das mit preg_match(), das ja nichts ersetzt, machen willst und was dabei nicht zu Ende gedacht ist.
Gruß,
Dieter