preg_replace: заменить все, кроме - PullRequest
1 голос
/ 21 июля 2011

Я хочу удалить некоторые нежелательные символы из следующей строки. Вот код.

 $input="aecąßÄ1,.!?-_'\"/><";  
    $input=preg_replace('/[^\p{P}\p{L}\p{N}\s]*/u', '', $input); 

Код работает нормально, но специальные символы теряются в выводе. Вот что я получаю.

   aec���1,.!?-_'"/  

Вместо

 aecąßÄ1,.!?-_'"/  

Почему это так?

1 Ответ

0 голосов
/ 21 июля 2011

РЕДАКТИРОВАТЬ на основе комментария:

Попробуйте использовать «реальные» символы:

$input=  preg_replace('/[^aecąßÄ1,.!?-_\'\"\/]/', '', $input);

последний ответ:

Если вы хотите удалить ненужные символыВы можете удалить эти символы с гораздо более простым регулярным выражением:

$input= "aecąßÄ1,.!?-_'\"/><";
$input=  preg_replace('/[<>]/', '', $input);

Просто поместите эти специальные символы между [] в регулярном выражении.Это будет работать в вашем случае.

...