PDA

Просмотр полной версии : iconv (из вин в утф)


.::BARS::.
12.06.2008, 05:40
<?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($fp, 128);
$file = '';
while(!feof($fp)) $file .= @fgets($fp, 4096);
@fclose($fp); }
echo $file;
?>

так норм, смотрим далее

<?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($fp, 128);
$file = '';
while(!feof($fp)) $file .= @fgets($fp, 4096);
@fclose($fp); }
$file=iconv("windows-1251", "UTF-8", $file);
echo $file;
?>

норм, НО...
После добавлеия

$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
как,как - байтом об косяк:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >

.::BARS::.
14.06.2008, 02:23
как,как - байтом об косяк:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >

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

scrat
14.06.2008, 02:36
Понял что написал хоть? Ты типа таким способом перекодировал страницу? Напиши код и посмотри что у тебя вышло...
возьми и посмотри,мне хватает того что это работает

.::BARS::.
14.06.2008, 02:53
не работает....

.::BARS::.
14.06.2008, 08:16
Все... решил проблему сам...

<?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($fp, 128);
$file = '';
while(!feof($fp)) $file .= @fgets($fp, 4096);
@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;
?>


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