chemax
Новичок
перекодировка iso в windows-1251
есть нужда выреза заголовков страниц с одного буржуйского сайта.
там в основном английский язык
но, встречаются и такие слова (Tradução) хз какой язык даже.
после такой обработки становится (traduзгo)
но если добавлять это же слово через поле ввода то все отображется хорошо. эти символы кодируются например (Tradu & # 231; & # 227;o)
кодировка на том сайте charset=iso-8859-1.
есть нужда выреза заголовков страниц с одного буржуйского сайта.
там в основном английский язык
но, встречаются и такие слова (Tradução) хз какой язык даже.
после такой обработки становится (traduзгo)
но если добавлять это же слово через поле ввода то все отображется хорошо. эти символы кодируются например (Tradu & # 231; & # 227;o)
кодировка на том сайте charset=iso-8859-1.
PHP:
function get_news ($content, $start_template, $finish_template)
{
$start_pos = strpos ($content, $start_template);
$sub_content = substr ($content, $start_pos, strlen ($content));
$finish_pos = strpos ($sub_content, $finish_template) + strlen ($finish_template);
return substr ($content, $start_pos, $finish_pos);
}
$url = "http://www.lyricstime.com/dragon-heart-the-blacksmith-tradu-o-lyrics.html";
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7" ;
$header [] = "Accept: text/html;q=0.9, text/plain;q=0.8, image/png, */*;q=0.5" ;
$header [] = "Accept_charset: windows-1251, utf-8, utf-16;q=0.6, *;q=0.1";
$header [] = "Accept_encoding: identity";
$header [] = "Accept_language: en-us,en;q=0.5";
$header [] = "Connection: close";
$header [] = "Cache-Control: no-store, no-cache, must-revalidate";
$header [] = "Keep_alive: 300";
$header [] = "Expires: Thu, 01 Jan 1970 00:00:01 GMT";
$ch = curl_init ( $url );
// CURL будет возвращать результат, а не выводить его в печать
@curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 );
// выводим подробные сообщения о всех действиях
@curl_setopt ( $ch , CURLOPT_VERBOSE , 1 );
// считываем страничку с хедером от сервера
@curl_setopt ( $ch , CURLOPT_HEADER , 1 );
// отправим серверу user_agent сформированный нами самими
@curl_setopt ( $ch , CURLOPT_USERAGENT , $agent );
// оправляем $referer, что пришли с первой страницы сайта
@curl_setopt ( $ch , CURLOPT_REFERER , $referer );
// оправляем на сервер хедер, который мы сами сформировали
@curl_setopt ( $ch , CURLOPT_HTTPHEADER , $header );
// при получении HTTP заголовка "Location: " будет
// происходить перенаправление
@curl_setopt ( $ch , CURLOPT_FOLLOWLOCATION , 1 );
// запретить проверку сертификата удаленного сервера
@curl_setopt ( $ch , CURLOPT_SSL_VERIFYPEER, 0 );
// не будем проверять существование имени
@curl_setopt ( $ch , CURLOPT_SSL_VERIFYHOST, 0 );
// если есть массив с cookie, то отправим серверу, эти cookie
if ( @is_array ($arr_cookie)){
while (list($key, $val) = @each ($arr_cookie)){
$COKKIES .= trim ($val[0])."=". trim ($val[1])."; ";
}
@curl_setopt ( $ch , CURLOPT_COOKIE , $COKKIES." expires=Mon, 14-Apr-08 10:34:13 GMT" );
}
// если с сервера пришло cookie, то запишем его в файл $cookie_file
@curl_setopt ( $ch , CURLOPT_COOKIEJAR , $cookie_file );
@curl_setopt ( $ch , CURLOPT_COOKIEFILE , $cookie_file );
// если мы послали данные из формы, которая стоит
// на страничке $path, добавляем метод $_POST
if (isset($_POST) and $_SERVER["REQUEST_METHOD"]=="POST"){
@curl_setopt ( $ch , CURLOPT_POST , 1 );
@curl_setopt ( $ch , CURLOPT_POSTFIELDS , substr ( data_encode ( $_POST ), 0 , - 1 ) );
}
// получаем страничку $path с хедером
$tmp = @curl_exec ( $ch );
// закрываем сеанс Curl
curl_close ( $ch );
$ttmp=get_news($tmp,"<title>","</title>");
echo $title=get_news($ttmp," - ","</title>");
echo iconv("ISO-8859-1", "WINDOWS-1251", $title);