2013-06-19 6 views
0

Я пытаюсь удалить «из моей строки».Удаление одной цитаты из строки в PHP

Вот мой код:

$page_title = strtolower(wp_title('', false, 'right')); 
echo $page_title; 
echo "<br/>"; 
$clean = preg_replace('/[^A-Za-z0-9\-]/', '', $page_title); 
echo $clean; 

Выход:

regio’s 
regio8217s 

Почему не возвращает 8217 вместо ''?

Заранее спасибо

+2

Я не получаю тот же результат: http://codepad.org/Ir5ZIsLk –

+3

'' 'вставлен с использованием символьной ссылки' ’ '. – Gumbo

+0

Привет Alex-Info.net, это потому, что вы использовали статическую строку. Как сказал @Gumbo, «вставлен с использованием символьной ссылки. Любая идея, как мы можем удалить этот определенный символ? Я учусь на минутку ... :) –

ответ

1

Ваша цитата была преобразована в его юникода значение (&#8217;) (см here, например). Это особый характер, а не стандартный.

+0

И что это такое? – Gumbo

+0

ОП спросил, почему, на что я ответил. Хотя справедливая точка. Решение будет зависеть от того, где OP захотела решить проблему - когда значение сохранено или когда оно получено – Hobo

+0

Я хочу, чтобы «удалялся из строки. –

0

Попробуйте preg_replace('/[^A-Za-z0-9\-]/u', '', $page_title);

и- после того, как шаблон обрабатывает Юникода тоже.

+0

Спасибо за ваш ответ. Но это не работает ... Он продолжает возвращать «regio8217s» –

+0

Предполагаю, что вы просматриваете этот вывод в веб-браузере, не так ли? Сделайте источник просмотра этих результатов и посмотрите, действительно ли он является сырым символом Unicode, или действительно версией, закодированной в HTML. –

+0

Возможно, вам потребуется выполнить дополнительную замену специально для поиска и замены символов в кодировке Unicode, кодированных в формате HTML, например preg_replace ('/ & # [0-9] +;/g', '', $ page_title); –

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