2013-09-05 2 views
1

Im пытается заменить определенный символ в строке, но я не могу заставить его работать. У меня есть следующий код:заменить все вхождения определенного символа в строке

$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); 

Я не уверен, что не так. Цель состоит в том, чтобы заменить все знаки «¤» строки. Я бы очень признателен, если кто-то может помочь мне здесь :)

+1

Если он не работает, есть несоответствие кодирования между ' '¤'' буквально в исходном коде (то есть кодировке исходного файла) и опубликованных данных. Кроме того, почему именно «¤»? – deceze

+0

im используя «¤» в качестве разделителя в моем файле хранилища, вот почему :), поэтому я должен просто попробовать использовать для этого другой символ? – Langkiller

+0

возможно, попробуйте с кодировкой utf8: '\ xa4' и использовать функции utf8 php? – Freelancer

ответ

-1

Попробуйте добавить escape character \ в строке шаблона ('\\*')

$name = str_replace('\\¤', '', $sname); 
Смежные вопросы