Неплохо бы, чтобы скрипт самостоятельно приводил url к удобочитаемому виду: заменял всякие
Цитата |
http://www.yandex.ru/yandsearch?text=%E9%EE%E6%FB%E3+%F4%F2%F3%EC%E0%ED%E5&stype=www |
Цитата |
http://www.yandex.ru/yandsearch?text=йожыг+фтумане&stype=www |
$H=getenv("HTTP_REFERER"); // получаем URL, с которого пришёл посетитель
while (ereg('%([0-9A-F]{2})',$H)){ // пока в строке $H будет хоть одно
//сочетание знака % и двух символов из диапазонов 0-9 и A-F
//(шестнадцатиричные цифры)
$val=ereg_replace('.*%([0-9A-F]{2}).*','\1',$H);
// присваиваем $val результат замены выражения,
//содержащего процент и два символа из означенных выше интервалов,
//на эти самые два символа
// короче говоря, теперь в $val у нас очередные 2 символа,
//перед которыми в исходном выражении стоял процент
$newval=chr(hexdec($val)); // получаем сивол с номером,
//полученным переведением полученного в $val
//шестнадцатиричного числа в "нормальное"
$H=str_replace('%'.$val,$newval,$H);
//стандартная строковая функция замены -
//заменяет подстроку, состоящую из процента и друх символов
//из переменной $var на символ, который эти два
//шестнадцатиричных символа кодировали
}// конец цикла :)
$f=fopen("1/visits.log",'a'); // дальше - понятно, пишем всё это в файл
flock ($f,2);
fwrite($f," Пришёл с: $H\n ");
fclose($f);
Цитата |
Пришёл с: http://yandex.ru/yandsearch?text=РїРёРєСЃР...азин&lr=213 |
$qwe= "ежик в тумане";
echo $zxc= urlencode($qwe) ."<br>" ;
echo urldecode($zxc) ;
echo $zxc= urlencode($qwe)выводит :
Цитата |
%E5%E6%E8%EA+%E2+%F2%F3%EC%E0%ED%E5 |
Цитата (inpost @ 9.03.2011 - 10:46) |
kuzroman К чему это всё? Я, когда делал скрипт, чтобы получить по какому запросу пришли на мой сайт использовал просто urldecode. |
$H=getenv("HTTP_REFERER"); // получаем URL, с которого пришёл посетитель
$lola= urldecode($H) ;
$f=fopen("1/visits.log",'a');
flock ($f,2);
fwrite($f," Пришёл с: $lola\n ");
fclose($f);
Цитата (linker @ 9.03.2011 - 11:28) |
Внимание, господа, UTF-8. |
text=%D0%B5%D0%B6%D0%B8%D0%BA+%D0%B2+%D1%82%D1%83%D0%BC%D0%B0%D0%BD%D0%B5&clid=9582говорит о том, что там UTF-8, а у тебя скорее всего windows-1251. Поэтому идут не стыковки.
$info['referer_word'] = iconv('cp1251', 'utf-8', urldecode($temp[1]));
Цитата (inpost @ 9.03.2011 - 12:53) |
$info['referer_word'] = iconv('cp1251', 'utf-8', urldecode($temp[1])); |
$H=getenv("HTTP_REFERER");
$bums = iconv('utf-8', 'cp1251', urldecode($H));
$f=fopen("1/visits.log",'a');
flock ($f,2);
fwrite($f," Пришёл с: $bums \n ");
fclose($f);