- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Может этот вопрос и не в том форуме задаю, но все же хочу попытать счастья.
Ситуация такая: ищем к примеру на MSN`е валенки, допустим, со страницы с результатами поиска к нам есть переход и тогда вот это вот:
http://search.msn.com/results.aspRS=CHECKED&FORM=MSNH&v=1
&q=%D0%B2%D0%B0%D0%BB%D0%B5%D0%BD%D0%BA%D0%B8
получаем у себя в качестве реферрера. Как из этой строки на PHP вытащить наши нормальные валенки?
Все функции из раздела CIV. URL Functions уже перепробовал - не получается ...
Вообще-то есть функция utf8_decode(), но она не всегда помогает.
Как-то встретил я одного монстра: http://airbase.ru/computers/php/utf8_win/
Если немного переделать и нет ничего лучшего, то работать будет.
utf8_decode не помогла, а этот вот монстр:
function utf8_win($s)
{
$s=str_replace("%D0%B0","а",$s); $s=str_replace("%D0%90","А",$s);
$s=str_replace("%D0%B1","б",$s); $s=str_replace("%D0%91","Б",$s);
$s=str_replace("%D0%B2","в",$s); $s=str_replace("%D0%92","В",$s);
$s=str_replace("%D0%B3","г",$s); $s=str_replace("%D0%93","Г",$s);
$s=str_replace("%D0%B4","д",$s); $s=str_replace("%D0%94","Д",$s);
$s=str_replace("%D0%B5","е",$s); $s=str_replace("%D0%95","Е",$s);
$s=str_replace("%D1%91","ё",$s); $s=str_replace("%D0%81","Ё",$s);
$s=str_replace("%D0%B6","ж",$s); $s=str_replace("%D0%96","Ж",$s);
$s=str_replace("%D0%B7","з",$s); $s=str_replace("%D0%97","З",$s);
$s=str_replace("%D0%B8","и",$s); $s=str_replace("%D0%98","И",$s);
$s=str_replace("%D0%B9","й",$s); $s=str_replace("%D0%99","Й",$s);
$s=str_replace("%D0%BA","к",$s); $s=str_replace("%D0%9A","К",$s);
$s=str_replace("%D0%BB","л",$s); $s=str_replace("%D0%9B","Л",$s);
$s=str_replace("%D0%BC","м",$s); $s=str_replace("%D0%9C","М",$s);
$s=str_replace("%D0%BD","н",$s); $s=str_replace("%D0%9D","Н",$s);
$s=str_replace("%D0%BE","о",$s); $s=str_replace("%D0%9E","О",$s);
$s=str_replace("%D0%BF","п",$s); $s=str_replace("%D0%9F","П",$s);
$s=str_replace("%D1%80","р",$s); $s=str_replace("%D0%A0","Р",$s);
$s=str_replace("%D1%81","с",$s); $s=str_replace("%D0%A1","С",$s);
$s=str_replace("%D1%82","т",$s); $s=str_replace("%D0%A2","Т",$s);
$s=str_replace("%D1%83","у",$s); $s=str_replace("%D0%A3","У",$s);
$s=str_replace("%D1%84","ф",$s); $s=str_replace("%D0%A4","Ф",$s);
$s=str_replace("%D1%85","х",$s); $s=str_replace("%D0%A5","Х",$s);
$s=str_replace("%D1%86","ц",$s); $s=str_replace("%D0%A6","Ц",$s);
$s=str_replace("%D1%87","ч",$s); $s=str_replace("%D0%A7","Ч",$s);
$s=str_replace("%D1%88","ш",$s); $s=str_replace("%D0%A8","Ш",$s);
$s=str_replace("%D1%89","щ",$s); $s=str_replace("%D0%A9","Щ",$s);
$s=str_replace("%D1%8A","ъ",$s); $s=str_replace("%D0%AA","Ъ",$s);
$s=str_replace("%D1%8B","ы",$s); $s=str_replace("%D0%AB","Ы",$s);
$s=str_replace("%D1%8C","ь",$s); $s=str_replace("%D0%AC","Ь",$s);
$s=str_replace("%D1%8D","э",$s); $s=str_replace("%D0%AD","Э",$s);
$s=str_replace("%D1%8E","ю",$s); $s=str_replace("%D0%AE","Ю",$s);
$s=str_replace("%D1%8F","я",$s); $s=str_replace("%D0%AF","Я",$s);
return $s;
}
действительно работает ... а может есть вариант попроще?
Так малость покороче, но все равно далеко от изящества.
Честно говоря, мне сейчас лень рисовать компактную и
изящную функцию.
Думается надо правильно выставить локаль на php, тогда и штатная
функция заработает.
function utf8_win($s)
{
$tbl_utf= array
("%D0%B0","%D0%B1","%D0%B2","%D0%B3","%D0%B4","%D0%B5",
"%D1%91","%D0%B6","%D0%B7","%D0%B8","%D0%B9","%D0%BA",
"%D0%BB","%D0%BC","%D0%BD","%D0%BE","%D0%BF","%D1%80",
"%D1%81","%D1%82","%D1%83","%D1%84","%D1%85","%D1%86",
"%D1%87","%D1%88","%D1%89","%D1%8A","%D1%8B","%D1%8C",
"%D1%8D","%D1%8E","%D1%8F","%D0%90","%D0%91","%D0%92",
"%D0%93","%D0%94","%D0%95","%D0%81","%D0%96","%D0%97",
"%D0%98","%D0%99","%D0%9A","%D0%9B","%D0%9C","%D0%9D",
"%D0%9E","%D0%A0","%D0%A1","%D0%A2","%D0%A3","%D0%A4",
"%D0%A5","%D0%A6","%D0%A7","%D0%A8","%D0%A9","%D0%AA",
"%D0%AB","%D0%AC","%D0%AD","%D0%AE","%D0%AF");
$tbl_win= array(
"а","б","в","г","д","е","ё","ж","з","и","й","к","л","м",
"н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ",
"ы","ь","э","ю","я","А","Б","В","Г","Д","Е","Ё","Ж","З",
"И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х",
"Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я");
for ($i=0;$i<count($tbl_utf); $i++)
$s=str_replace($tbl_utf[$i],$tbl_win[$i],$s);
return $s;
}
Cool!
Она стала меньше в 2 раза!
P.S. Пока выставить локаль на php не представляется возможным...
P.P.S. А еще перед циклом можно вставить
$s=strtoupper($s);
А вот еще вопрос - что это за кодировка такая, в которой буквы русского афавита кодируются как-то так: %u044C, %u044F?
Обычная Unicode это...
В этом форуме я уже кидал скрипт на перле, который такую кодировку переиначивает в "обычные" русские буковки.
Тестировалось на Google, откуда, похоже, и Ваш пример... ;)
А есть ли на PHP что-нибудь, что конвертит такую строку с Unicode в Win?
А с перла перевести на PHP сложно? Там 10 строк кода... Да и языки оба C-подобные.
Не вопрос! Осталось только скрипт найти - у меня не получилось. Может бросите или сюда или в личку?
NULL, здесь: