|
|
|
| есть счётчик, записывает в базу данных страницы откуда пришёл посетитель,
типа http://search.rambler.ru/srch?words=%EF%EE%EB%EE%E2%E0%FF+%E4%EE%F1%EA%E0+%F6%E5%ED%E0&where=1
помогите перевести кракозябры на русский язык.
пробовал rawurldecode , ничего не получается. а моему заказчику интересно по каким словам находят его сайт. | |
|
|
|
|
автор: Andre_vet (16.12.2004 в 13:39) |
|
|
для: юра
(16.12.2004 в 11:10)
| | Штирлиц возьми
http://search.rambler.ru/srch?words=половая+доска+цена&where=1 | |
|
|
|
|
|
|
|
для: Andre_vet
(16.12.2004 в 13:39)
| | у меня в переменную $ref вставляется строка в виде буковок-процентов, я беру из переменных окружения с помощью вот этого
$ref=$_SERVER["HTTP_REFERER"];
,а тебе как удалось в переменную записать русскую строчку?
я имею введу програьмными методами, а не вставлять эту строчку в браузер. | |
|
|
|
|
|
|
|
для: юра
(16.12.2004 в 13:46)
| | Он привёл расшифровку выдаваемую функцией rawurldecode - это её подчерк - вместо пробелов +.... | |
|
|
|
|
|
|
|
для: юра
(16.12.2004 в 13:46)
| | Andre_vet говорит про то, что есть программа "Штирлиц", которая очень хорошо перекодирует текст. Нужно скопировать в нее текст и нажать кнопку "Decode"
-----------------------------------
Но нам нужно решать эту задачу на PHP. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(16.12.2004 в 22:05)
| | Чего только не придумают люди :))) Но всё что имеет место быть в Интернете можно перекодировать PHP, так как в большинстве случаев оно им и закодировано :))) | |
|
|
|
|
|
|
|
для: юра
(16.12.2004 в 11:10)
| | Нужно спросить cheopsa, там было несколько хитрых моментов, но он будет только вечером. | |
|
|
|
|
|
|
|
для: юра
(16.12.2004 в 11:10)
| | Код
<?php
$test = "http://search.rambler.ru/srch?words=%EF%EE%EB%EE%E2%E0%FF+%E4%EE%F1%EA%E0+%F6%E5%ED%E0&where=1";
echo urldecode($test);
?>
|
Даёт
http://search.rambler.ru/srch?words=половая доска цена&where=1
|
в кодировке win-1251 - скорее всего грабли с кодировками. Так часто бывает, строка например идёт в KOI8-R, а страница отображается в win-1251 и наоборот. Я уж не помню какой поисковик какую кодировку любит - точно все разные (там и win-1251 и KOI8-R и utf8), некоторые особенно зловредные товарищи вроде Yandex используют их все, единственное радует, что различить их можно по виду запроса... | |
|
|
|
|
|
|
|
для: cheops
(16.12.2004 в 21:53)
| | Спасибо, urldecode деиствительно работает,
правда как и говорил cheops через раз.
причём по разному на локальной машине и на хостинге, видимо от сервера зависит и от php.ini.
но половину реферер-адресов переводит правильно.
а у меня посетители в основном с поисковиков и клиент интересуется качеством посетителей .., не пишу ли я <титл>XXX, sex</титл> в титлах. ;-))
[b]спасибо ;-))[b] | |
|
|
|
|
|
|
|
для: юра
(17.12.2004 в 06:54)
| | Кстати я тут немного уточнил работу штатной функции urldecode на практике
Рекомендую использовать её два раза сподрят для верности.
Если попадаются знаки типа %25E0 первой функцией urldecode они приводятся к виду %E0 , а второй функцией urldecode знак %E0 приводит к родной букве "а" в лучшем случае если кодировка win.
Если текст в кодировке koi то дополнительно надо конвертировать в win.
пример недоделаной самописной функции (нет проверки надо ли конвертировать строку или нет)
function DecodeUrl($string)
{
$string=urldecode(urldecode($string));
return $string=$string.'<br>'.$string=convert_cyr_string($string,k,w) ;
}
$string='http://www.yandex.ru/yandpage?q=448766800&p=2&ag=d&qs=text%3D%25D0%25C9%25CC%25CF%25CD%25C1%25D4%25C5%25D2%25C9%25C1%25CC%2B%25C2%25C5%25D2%25A3%25DA%25CF%25D7%25D9%25CA%26stype%3Dwww ';
echo DecodeUrl($string);
выводит на экран две строки одна конвертрованная другая нет:
http://www.yandex.ru/yandpage?q=448766800&p=2&ag=d&qs=text=РЙМПНБФЕТЙБМ ВЕТЈЪПЧЩК&stype=www
http://www.yandex.ru/yandpage?q=448766800&p=2&ag=d&qs=text=пиломатериал берёзовый&stype=www
надо бы дописать функцию чтобы она проверяла надо конвертировать строку или нет,
а то если вначале строка будет вин после convert_cyr_string($string,k,w) её невозможно прочитать.
а так функция переводит 100% рефер-адресов ramblera i yandexa. | |
|
|
|