2015-04-12 7 views
1

У меня небольшая проблема с некоторыми моими URL. Скажем, that $result['title'] = CitroënЗамена специальных символов из URL с помощью значка не работает

В моем URL-адресе я хочу, чтобы это слово стало «citroen». Следующая функция делает все правильно, за исключением того, что она удаляет «ë», поэтому мой url становится «citron».

<?php echo strtolower(preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $result['title'])));?> 

Я думал, что я мог бы решить эту проблему с помощью iconv ... но она не работает. «Citroën» по-прежнему заменяется «цитроном».

<?php echo strtolower(preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', iconv('UTF-8', 'ASCII//TRANSLIT', $result['title']))));?> 

Итак, что мне здесь не хватает?

+2

Вы решили использовать urlencode() вместо этого. 'echo urlencode ('Citroën'); // Citro% C3% ABn ' –

+0

Использование urlencode дает мне« citroc3ab ». – Stan

+0

Я нашел ответ. Мне нужно было установить целевой язык. 'php setlocale (LC_ALL, 'en_GB');' – Stan

ответ

2

Хорошо, я понял. Мне нужно установить целевую локаль. Следующий код работает (так что «Citroën» становится «citroen»):

<?php setlocale(LC_ALL, 'en_GB.utf8'); echo strtolower(preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', iconv('UTF-8', 'ASCII//TRANSLIT', $result['titel']))));?> 
Смежные вопросы