2013-09-05 4 views
1

En essayant de remplacer un certain caractère dans une chaîne, mais je n'arrive pas à le faire fonctionner. J'ai le code suivant jusqu'à présent:remplacer toutes les occurrences d'un caractère spécifique dans la chaîne

$sname = preg_replace('/[^\p{L}\p{N}\s]/u', '', $_POST['name']); 
$semail = preg_replace('/[^\p{L}\p{N}\s]/u', '', $_POST['email']); 
$smessage = preg_replace('/[^\p{L}\p{N}\s]/u', '', $_POST['message']); 

$name = str_replace('¤', '', $sname); 
$email = str_replace('¤', '.', $semail); 
$message  = str_replace('¤', '.', $smessage); 

Je ne suis pas sûr de ce qui ne va pas. L'objectif est de remplacer tous les signes "¤" de la chaîne. J'apprécierais vraiment si quelqu'un pourrait me aider :)

+1

Si cela ne fonctionne pas, il y a un décalage de codage entre le ' '¤'' littéral dans votre code source (c'est-à-dire l'encodage du fichier source) et les données publiées. Aussi, pourquoi spécifiquement '¤'? – deceze

+0

Im en utilisant le '¤' comme séparateur dans mon fichier de stockage, c'est pourquoi :) donc je devrais juste essayer d'utiliser un autre symbole pour cela? – Langkiller

+0

peut-être essayer avec l'encodage utf8: '\ xa4' et utiliser les fonctions php utf8? – Freelancer

Répondre

-1

Essayez d'ajouter escape character \ dans votre modèle de chaîne ('\\*')

$name = str_replace('\\¤', '', $sname); 
Questions connexes