iconv (из вин в утф)

Discussion in 'PHP' started by .::BARS::., 12 Jun 2008.

  1. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    PHP:
    <?php 
    $user_agent 
    "User_agent: Opera/9.50 (Windows NT 5.1; U; ru)\r\n";
    $accept "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif,image/x-bitmap, */*;q=0.1\r\n";
    $accept_language "Accept-Language: ru, en;q=0.9\r\n";
    $accept_charset "Accept-Charset: utf-8;q=0.6 windows-1251;q=0.1 *;q=0.1\r\n";
    $referer "Referer: http://www.google.com\r\n";
    $conection "Connection: Close\r\n";
    $host"www.google.com";
    $path="/search?".$_SERVER['QUERY_STRING'];
    $fp=fsockopen($host,80,$errno$errstr,10);
    if(!
    $fp) {
    echo 
    "$errstr ($errno)<br/>\n";
    } else {
    $data "";$post=0;
    foreach(
    $_POST as $key=>$value){$post=1;
        
    $data.="&$key=$value";}
    if(
    $data)$data=substr($data,1);
    if(
    $post)
    $headers "POST $path HTTP/1.0\r\n";else
    $headers "GET $path HTTP/1.0\r\n";
    $headers .= "Host: $host\r\n";
    $headers .= "Accept: *\r\n";
    $headers .= "Accept-Charset: UTF-8\r\n";
    $headers .= "Accept-Charset: *\r\n";
    $headers .= "Accept-Encoding: deflate\r\n";
    $headers .= "Accept-Language: ru\r\n";
    $headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 9.50\r\n";
    if(
    $post){
    $headers .= "Content-type: application/x-www-form-urlencoded\r\n";
    $headers .= "Content-Length: ".strlen ($data)."\r\n";
    $headers .= "\r\n";
    $headers .= $data;}else $headers.="\r\n";
    @
    fwrite($fp$headers);
    while(
    $file != "\r\n"$file = @fgets($fp128);
    $file '';
    while(!
    feof($fp)) $file .= @fgets($fp4096);
    @
    fclose($fp); }
    echo 
    $file;
    ?>
    так норм, смотрим далее

    PHP:
    <?php 
    $user_agent 
    "User_agent: Opera/9.50 (Windows NT 5.1; U; ru)\r\n";
    $accept "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif,image/x-bitmap, */*;q=0.1\r\n";
    $accept_language "Accept-Language: ru, en;q=0.9\r\n";
    $accept_charset "Accept-Charset: utf-8;q=0.6 windows-1251;q=0.1 *;q=0.1\r\n";
    $referer "Referer: http://www.google.com\r\n";
    $conection "Connection: Close\r\n";
    $host"www.google.com";
    $path="/search?".$_SERVER['QUERY_STRING'];
    $fp=fsockopen($host,80,$errno$errstr,10);
    if(!
    $fp) {
    echo 
    "$errstr ($errno)<br/>\n";
    } else {
    $data "";$post=0;
    foreach(
    $_POST as $key=>$value){$post=1;
        
    $data.="&$key=$value";}
    if(
    $data)$data=substr($data,1);
    if(
    $post)
    $headers "POST $path HTTP/1.0\r\n";else
    $headers "GET $path HTTP/1.0\r\n";
    $headers .= "Host: $host\r\n";
    $headers .= "Accept: *\r\n";
    $headers .= "Accept-Charset: UTF-8\r\n";
    $headers .= "Accept-Charset: *\r\n";
    $headers .= "Accept-Encoding: deflate\r\n";
    $headers .= "Accept-Language: ru\r\n";
    $headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 9.50\r\n";
    if(
    $post){
    $headers .= "Content-type: application/x-www-form-urlencoded\r\n";
    $headers .= "Content-Length: ".strlen ($data)."\r\n";
    $headers .= "\r\n";
    $headers .= $data;}else $headers.="\r\n";
    @
    fwrite($fp$headers);
    while(
    $file != "\r\n"$file = @fgets($fp128);
    $file '';
    while(!
    feof($fp)) $file .= @fgets($fp4096);
    @
    fclose($fp); }
    $file=iconv("windows-1251""UTF-8"$file);
    echo 
    $file;
    ?>
    норм, НО...
    После добавлеия

    PHP:
    $file=iconv("windows-1251""UTF-8"$file);
    Страница меняет кодировку, но когда пишешь гуглу запрос на поиск он выводит "крякозябры", т.е. символы с утф... Короче полная лажа.....

    Вопрос: как можно это исправить?
    www.google.com - взят как пример, не говорить что у гугла есть версия в утф.....
     
  2. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    А что мы юзаем функцию и даже знаем что она делает, но юзаем её все равно?
    Может потому что ты windows-1251 меняешь на UTF-8 ?
     
  3. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    да... из-за этого... вот и спрашиваю можно ли сменить обратно при запросе....
    может показать на примере?
     
  4. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    Как можно еще отобразить страницу в утф.. минуя iconv
     
  5. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    как,как - байтом об косяк:
    PHP:
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" 
     
    1 person likes this.
  6. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    Понял что написал хоть? Ты типа таким способом перекодировал страницу? Напиши код и посмотри что у тебя вышло...
     
  7. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    возьми и посмотри,мне хватает того что это работает
     
  8. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    не работает....
     
  9. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    Все... решил проблему сам...

    PHP:
    <?php  
    $user_agent 
    "User_agent: Opera/9.50 (Windows NT 5.1; U; ru)\r\n"
    $accept "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif,image/x-bitmap, */*;q=0.1\r\n"
    $accept_language "Accept-Language: ru, en;q=0.9\r\n"
    $accept_charset "Accept-Charset: utf-8;q=0.6 windows-1251;q=0.1 *;q=0.1\r\n"
    $referer "Referer: http://www.google.com\r\n"
    $conection "Connection: Close\r\n"
    $host"www.google.com"
    $path="/search?".$_SERVER['QUERY_STRING']; 
    $fp=fsockopen($host,80,$errno$errstr,10); 
    if(!
    $fp) { 
    echo 
    "$errstr ($errno)<br/>\n"
    } else { 
    $data "";$post=0
    foreach(
    $_POST as $key=>$value){$post=1
        
    $data.="&$key=$value";} 
    if(
    $data)$data=substr($data,1); 
    if(
    $post
    $headers "POST $path HTTP/1.0\r\n";else 
    $headers "GET $path HTTP/1.0\r\n"
    $headers .= "Host: $host\r\n"
    $headers .= "Accept: *\r\n"
    $headers .= "Accept-Charset: UTF-8\r\n"
    $headers .= "Accept-Charset: *\r\n"
    $headers .= "Accept-Encoding: deflate\r\n"
    $headers .= "Accept-Language: ru\r\n"
    $headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 9.50\r\n"
    if(
    $post){ 
    $headers .= "Content-type: application/x-www-form-urlencoded\r\n"
    $headers .= "Content-Length: ".strlen ($data)."\r\n"
    $headers .= "\r\n"
    $headers .= $data;}else $headers.="\r\n"
    @
    fwrite($fp$headers); 
    while(
    $file != "\r\n"$file = @fgets($fp128); 
    $file ''
    while(!
    feof($fp)) $file .= @fgets($fp4096); 
    @
    fclose($fp); } 
    $file=iconv("windows-1251""UTF-8"$file);
    $file=str_replace('С‘','ё',$file);
    $file=str_replace('Р№','й',$file);
    $file=str_replace('С†','ц',$file);
    $file=str_replace('Сѓ','у',$file);
    $file=str_replace('Рє','к',$file);
    $file=str_replace('Рµ','е',$file);
    $file=str_replace('РЅ','н',$file);
    $file=str_replace('Рі','г',$file);
    $file=str_replace('С?','ш',$file);
    $file=str_replace('С‰','щ',$file);
    $file=str_replace('Р·','з',$file);
    $file=str_replace('С…','х',$file);
    $file=str_replace('СЉ','ъ',$file);
    $file=str_replace('С„','ф',$file);
    $file=str_replace('С‹','ы',$file);
    $file=str_replace('РІ','в',$file);
    $file=str_replace('Р°','а',$file);
    $file=str_replace('Рї','п',$file);
    $file=str_replace('СЂ','р',$file);
    $file=str_replace('Рѕ','о',$file);
    $file=str_replace('Р»','л',$file);
    $file=str_replace('Рґ','д',$file);
    $file=str_replace('Р¶','ж',$file);
    $file=str_replace('СЌ','э',$file);
    $file=str_replace('СЏ','я',$file);
    $file=str_replace('С‡','ч',$file);
    $file=str_replace('СЃ','с',$file);
    $file=str_replace('Рј','м',$file);
    $file=str_replace('Рё','и',$file);
    $file=str_replace('С‚','т',$file);
    $file=str_replace('СЊ','ь',$file);
    $file=str_replace('Р±','б',$file);
    $file=str_replace('СЋ','ю',$file);
    $file=str_replace('РЃ','Ё',$file);
    $file=str_replace('Р™','Й',$file);
    $file=str_replace('Р¦','Ц',$file);
    $file=str_replace('РЈ','У',$file);
    $file=str_replace('Рљ','К',$file);
    $file=str_replace('Р•','Е',$file);
    $file=str_replace('Рќ','Н',$file);
    $file=str_replace('Р“','Г',$file);
    $file=str_replace('РЁ','Ш',$file);
    $file=str_replace('Р©','Щ',$file);
    $file=str_replace('Р—','З',$file);
    $file=str_replace('РҐ','Х',$file);
    $file=str_replace('РЄ','Ъ',$file);
    $file=str_replace('Р¤','Ф',$file);
    $file=str_replace('Р«','Ы',$file);
    $file=str_replace('Р’','В',$file);
    $file=str_replace('Рђ','А',$file);
    $file=str_replace('Рџ','П',$file);
    $file=str_replace('Р*','Р',$file);
    $file=str_replace('Рћ','О',$file);
    $file=str_replace('Р›','Л',$file);
    $file=str_replace('Р”','Д',$file);
    $file=str_replace('Р–','Ж',$file);
    $file=str_replace('Р*','Э',$file);
    $file=str_replace('РЇ','Я',$file);
    $file=str_replace('Р§','Ч',$file);
    $file=str_replace('РЎ','С',$file);
    $file=str_replace('Рњ','М',$file);
    $file=str_replace('И','И',$file);
    $file=str_replace('Рў','Т',$file);
    $file=str_replace('Р¬','Ь',$file);
    $file=str_replace('Р‘','Б',$file);
    $file=str_replace('Р®','Ю',$file);
    echo 
    $file
    ?>

    может кому пригодится....