2013-12-03 3 views
1

Быстрый вопрос. Im делает preg_replace очистить слова из названия:Странный символ после предварительной замены

$title2 = preg_replace("/[^\p{L}&;]/", " ", $title1); 

Если я не ошибаюсь, это должно дать мне все буквы и «&» и «;» символы.

Howerver ... Я не могу быть в состоянии избавиться от этого: -

Любые советы?

UPDATE @CBroe отметил, что это было шоу из-за — Как я могу избежать странных символов при рассмотрении ударения и аналогичные иностранные символов? такие как À

UPDATE2 Этот код, кажется, работает:

$title2 = preg_replace("/[^\p{L}]/u", " ", html_entity_decode($title1)); 

По-видимому, добавление/U делает все различия.

+2

Может быть, '-' не то, что кажется, но вместо этого в HTML-обозначении сущности? '—' - только буквы, & and ; - идеально подходит! – CBroe

+0

AH !! конечно! Вы правы :-) Однако мне нужны «&» и «;» для акцентов, таких как & Agrave; Anny предложения? – James

+0

Сначала декодировать объекты в настоящие символы ...? – CBroe

ответ

0

Этот код, кажется, работает:

$title2 = preg_replace("/[^\p{L}]/u", " ", html_entity_decode($title1)); 

По-видимому, добавление/U делает все различия.

Смежные вопросы