[resolved] PHP. Преобразование кодировок.
71 повідомлення
#16 років тому
Здравствуйте.Нужно преобразовывать название товара в латиницу, для использования его потом в URL.
Вот пример названия: "godišnje leće". Название в кодировке UTF-8, и у меня проблема с преобразованием его в латиницу ("godisnje lece"

Пробую с помощью iconv так:
$s = iconv('utf-8', 'latin1', $s)
Но вывод обрезается, и выводится только "odi".
Не подскажете как решить проблему? А то гугление мне не особо помогло.
P.S.
Форум покрутил строки. Там должны быть символы с апострофами сверху, из западнославянских языков.
17 повідомлень
#16 років тому
БД используется, если да? То проще sql запрос выполнить на преобразование поля. Примерно так.
UPDATE `таблица` SET поле=CONVERT(CONVERT(поле USING utf-8) USING latin1);
71 повідомлення
#16 років тому
БД используется, MySQL.Но мне нужно именно в скрипте такое преобразование сделать.
71 повідомлення
#16 років тому
Опишу задачу по детальней.Стоит задача от заказчика: сделать ссылку на страницу с товаром в виде http://..../product-name.html
Я с таким не сталкивался никогда, и решил реализовать ее следующим способом:
- в БД сохраняем кроме названия товара "название для урла"
- его и суем в линк
- и поиск ведем по нем в БД, а не по ИД, как в классическом случае
И в инете кроме данного метода других не видел. Буду признателен, если кто поделится своими идеями реализации данной задачи.
Но дело в том что в названии товара могут присутствовать символы не только английского алфавита.
Можно попробовать и при записи преобразовывать название средствами MySQL (преобразовать кодировку и заменить пробелы), но хотелось бы все таки средствами PHP.
17 повідомлень
17 повідомлень
#16 років тому
В Вашем случае будет примерно так:#Получить domain.com/product-name-1/ из domain.com/product.php?name=category-name-1
RewriteRule ^(+)/?$ product/php?name=$1
71 повідомлення
#16 років тому
Оно то так. Но это только часть работы, с mod_rewrite я знаком.Но вот чтобы то самое имя в URL засунуть, его ведь нужно преобразовать. Что у меня и не получается сделать.
2195 повідомлень