Проблема с получением русских букв от yahoo

_Tarik_

Новичок
Проблема с получением русских букв от yahoo

вот что делаю
PHP:
$f_in=fopen("http://search.yahoo.com/search?p=$word&sm=Yahoo%21+Search&fr=FP-tab-web-t&toggle=1&cop=&ei=UTF-8","r");
   while(!feof($f_in))$str.=fread($f_in,8192);
   fclose($f_in);
yahoo должен вернуть результат в юникоде но
в сторке $str на месте русских букв ни чего нет. Пробовал конвертить iconv-ом
ни чего не получается только пол строки удаляется.
Далал это так
PHP:
$str=iconv('UTF-8','windows-1251',$str)
Что делать?
 

_Tarik_

Новичок
Пробовал вот так
PHP:
      $ch=curl_init("http://search.yahoo.com/search?p=$word&prssweb=Search&ei=UTF-8&fl=0&x=wrt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$tmp = curl_exec ($ch);
curl_close ($ch);
echo $str;
Где $word - искомое слово без пробелов и состоящее только из английских символов. Результат тот же - нету русских букв на местах где должны они быть пробелы.
 

SiMM

Новичок
> Где $word - искомое слово без пробелов и состоящее только из английских символов. Результат тот же - нету русских букв на местах где должны они быть пробелы.
Зашёл БРАУЗЕРОМ на search.yahoo.com/search?p=word&prssweb=Search&ei=UTF-8&fl=0&x=wrt - ни одного русского символа - не обнаружил. Сложно найти то, чего нет. Отсюда вопрос - где они должны быть и с какой кстати?
 

_Tarik_

Новичок
$word - это переменная в которой хранится английское слово.
И ещё один интерестный факт если сохранить результат запросса браузером в файл, а потом работать с файлом в php, то всё работает и спокойно конвертится iconv-ом в cp-1251.
 

SiMM

Новичок
_Tarik_, по вашему - я телепат? Я повторяю ещё раз - подставляю в качестве $word АНГЛИЙСКОЕ слово 'word' - и в результате запроса БРАУЗЕРОМ не вижу НИ ОДНОГО русского слова.
Телепаты - в отпуске. Если в каком-то частном случае значения $word в результате запроса появляется русский текст - то это частное значение надо приводить. А не ждать, когда кто-нибудь его подберёт.
 

SiMM

Новичок
Ему походу необходимо указывать Accept-Charset. Код
PHP:
$fp = fsockopen('search.yahoo.com',80);
$req = "GET /search?p=ipclub&prssweb=Search&ei=UTF-8&fl=0&x=wrt HTTP/1.0\n".
       "Host: search.yahoo.com\n".
       "Accept-Charset: utf-8\n".
       "\n";
fputs($fp,$req);
fpassthru($fp);
со своей задачей прекрасно справляется, в отличии, скажем, от
PHP:
readfile('http://search.yahoo.com/search?p=ipclub&prssweb=Search&ei=UTF-8&fl=0&x=wrt');
В последнем случае вместо "неизвестных" русских символов действительно ничего кроме пробела не приходит - их же нет в ISO-8859-1. Как вариант - можно обойтись
PHP:
$req = "GET /search?p=ipclub&prssweb=Search&ei=UTF-8&fl=0&x=wrt HTTP/1.0\n".
       "Host: search.yahoo.com\n".
       "Accept-Charset: windows-1251\n".
       "\n";
PS: остальное сделаешь самостоятельно.
 
Сверху