Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   iconv (из вин в утф) (https://forum.antichat.xyz/showthread.php?t=73505)

.::BARS::. 12.06.2008 05:40

iconv (из вин в утф)
 
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 - взят как пример, не говорить что у гугла есть версия в утф.....

Isis 12.06.2008 13:34

А что мы юзаем функцию и даже знаем что она делает, но юзаем её все равно?
Может потому что ты windows-1251 меняешь на UTF-8 ?

.::BARS::. 12.06.2008 13:52

Цитата:

Может потому что ты windows-1251 меняешь на UTF-8 ?
да... из-за этого... вот и спрашиваю можно ли сменить обратно при запросе....
может показать на примере?

.::BARS::. 13.06.2008 12:07

Как можно еще отобразить страницу в утф.. минуя iconv

scrat 13.06.2008 21:18

как,как - байтом об косяк:
PHP код:

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" 


.::BARS::. 14.06.2008 02:23

Цитата:

Сообщение от scrat
как,как - байтом об косяк:
PHP код:

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" 


Понял что написал хоть? Ты типа таким способом перекодировал страницу? Напиши код и посмотри что у тебя вышло...

scrat 14.06.2008 02:36

Цитата:

Сообщение от .::bars::.
Понял что написал хоть? Ты типа таким способом перекодировал страницу? Напиши код и посмотри что у тебя вышло...

возьми и посмотри,мне хватает того что это работает

.::BARS::. 14.06.2008 02:53

не работает....

.::BARS::. 14.06.2008 08:16

Все... решил проблему сам...

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
?>


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


Время: 06:49