chelnovosti_ru 2 Опубликовано: 23 октября 2011 Рассказать Опубликовано: 23 октября 2011 Доброй ночи, вот скачал модуль "Вывод торрент раздач на ajax" для ДЛЕ, всё установил по инструкции, но русские буквы выводятся иероглифами. Если кто знает как исправить, подскажите пожалуйста, вот код модуля <?php @session_start(); @ob_start(); @ob_implicit_flush(0); @error_reporting(E_ALL ^E_WARNING ^E_NOTICE); @ini_set('display_errors',false); @ini_set('html_errors',false); @ini_set('error_reporting',E_ALL ^E_WARNING ^E_NOTICE); define('DATALIFEENGINE',true); $member_id = false; $is_logged = false; define('ROOT_DIR',dirname(__FILE__).'/../..'); define('ENGINE_DIR',ROOT_DIR.'/engine'); @include (ENGINE_DIR.'/data/config.php'); require_once ENGINE_DIR.'/classes/mysql.php'; require_once ENGINE_DIR.'/data/dbconfig.php'; require_once ENGINE_DIR.'/modules/functions.php'; function UTF8toCP1251($str) { static $table = array("\xD0\x81"=>"\xA8", "\xD1\x91"=>"\xB8", "\xD0\x8E"=>"\xA1", "\xD1\x9E"=>"\xA2", "\xD0\x84"=>"\xAA", "\xD0\x87"=>"\xAF", "\xD0\x86"=>"\xB2", "\xD1\x96"=>"\xB3", "\xD1\x94"=>"\xBA", "\xD1\x97"=>"\xBF", "\xD3\x90"=>"\x8C", "\xD3\x96"=>"\x8D", "\xD2\xAA"=>"\x8E", "\xD3\xB2"=>"\x8F", "\xD3\x91"=>"\x9C", "\xD3\x97"=>"\x9D", "\xD2\xAB"=>"\x9E", "\xD3\xB3"=>"\x9F", ); return preg_replace('#([\xD0-\xD1])([\x80-\xBF])#se','isset($table["$0"]) ? $table["$0"] : chr(ord("$2")+("$1" == "\xD0" ? 0x30 : 0x70)) ',$str ); } function search_torrent($query) { $query = str_replace(" ","+",$query); $querys = "POST http://megashara.com/search/?text=$query&x=0&y=0 HTTP/1.0\r\n". "Referer: http \r\n". "User-Agent: Mozilla/4.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20036725 Firefox/2.0.0.1\r\n". "Host: rutor.org\r\n". "Accept: text/html;q=0.1\r\n". "Accept-Language: ru,en;q=0.9\r\n". "Accept-Charset: windows-1251;q=0.6, *;q=0.1\r\n". "Proxy-Connection: close\r\n". "Content-Type: application/x-www-form-urlencoded\r\n". "Content-Length: "."1"."\r\n\r\n". $posts."\r\n\r\n"; $socket = fsockopen('megashara.com',80,$errno,$errstr,120); fwrite($socket,$querys); while (!feof($socket)) { $s.=fgets($socket); } fclose($socket); $result = $s; $result = UTF8toCP1251($result); $find2 = ""; $p1 = strpos($result,"<table width=\"100%\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\" style=\"border-collapse: collapse;\">"); $p2 = strpos($result,"<div id=\"prevnext\"></div>"); $result = substr($result,$p1,$p2 -$p1); preg_match_all('#<td class="flat-result" style="width:50px;">(.*)</td> <td class="flat-result" style="width:310px; text-align:left;"><a href="(.*)">(.*)</a></td> <td class="flat-result" style="width:20px;"><a href="(.*)"><img src="http://static.megashara.com/templates/fastheme/mini_magnet.png" alt="Magnet-ссылка"></a></td> <td class="flat-result" style="width:70px;">(.*)</td> (.*) </tr>#Uis',$result,$find); $count = intval(count($find['1'])); $i = -1; $find2 = ""; while ($i <$count -1) { $i++; $find['9'][$i] = str_replace("http://s.rutor.org/i/m.png","/magnet.png",$find['9'][$i]); $find['9'][$i] = str_replace("magnet:","http://torrentsbum.org/engine/magnet.php?url=magnet:",$find['9'][$i]); $is = $i +1; $find2 .= "<tr valign=\"top\"> <td>{$is}</td> <td>{$find['1'][$i]}</td> <td>{$find['3'][$i]}</td> <td><a href=\"{$find['4'][$i]}\"><img src=\"/mini_magnet.png\" alt=\"Magnet-ссылка\"></a></td> <td>{$find['5'][$i]}</td> {$find['6'][$i]} {$find['7'][$i]} </tr>"; } if (!$find2 or $find2 == "") { $finds = "<center>Не удалось отобразить раздачу!</center><br />"; }else { $finds = "<b>Найденные торрент раздачи на MEGASHARA.COM</b> <table width=\"100%\" cellspacing=\"0\" cellpadding=\"10\"><tr valign=\"top\"> <td style=\"background: #aaaaaa; font-size: 8pt; font-family: Verdana; color: #ffffff;\">№</td> <td style=\"background: #aaaaaa; font-size: 8pt; font-family: Verdana; color: #ffffff;\">Раздел</td> <td style=\"background: #aaaaaa; font-size: 8pt; font-family: Verdana; color: #ffffff;\">Заголовок</td> <td style=\"background: #aaaaaa; font-size: 8pt; font-family: Verdana; color: #ffffff;\">Магнет</td> <td style=\"background: #aaaaaa; font-size: 8pt; font-family: Verdana; color: #ffffff;\">Размер</td> <td style=\"background: #aaaaaa; font-size: 8pt; font-family: Verdana; color: #ffffff;\">Сиды</td> <td style=\"background: #aaaaaa; font-size: 8pt; font-family: Verdana; color: #ffffff;\">Пиры</td> </tr>{$find2} </table> <center><span><span><a href=\"http://rutr.net\" target=\"_blank\">Хостинг изображений</a></span></center>"; } return ($finds); } function search_torrent1($query) { $query = str_replace(" ","+",$query); $querys = "POST http://rutor.org/search/0/0/100/0/$query HTTP/1.0\r\n". "Referer: http \r\n". "User-Agent: Mozilla/4.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20036725 Firefox/2.0.0.1\r\n". "Host: rutor.org\r\n". "Accept: text/html;q=0.1\r\n". "Accept-Language: ru,en;q=0.9\r\n". "Accept-Charset: windows-1251;q=0.6, *;q=0.1\r\n". "Proxy-Connection: close\r\n". "Content-Type: application/x-www-form-urlencoded\r\n". "Content-Length: "."1"."\r\n\r\n". $posts."\r\n\r\n"; $socket = fsockopen('rutor.org',80,$errno,$errstr,120); fwrite($socket,$querys); while (!feof($socket)) { $s.=fgets($socket); } fclose($socket); $result = $s; $result = UTF8toCP1251($result); $find2 = ""; $p1 = strpos($result,"<table width=\"100%\"><tr class=\"backgr\">"); $p2 = strpos($result,"</table><b>Страницы"); $result = substr($result,$p1,$p2 -$p1); preg_match_all('#<a class="downgif" href="/download/(.[0-9]*)"><img src="http://s.rutor.org/i/d.gif" alt="D" /></a>(.*)<a href="/torrent/(.*)">(.*)</a>(.*)<td align="right">([0-9]*..?[0-9]+.?) (.[A-Z]*)</td><td align="center"><span class="green"><img src="http://s.rutor.org/t/arrowup.gif" alt="S" /> (.[0-9]*)</span> <img src="http://s.rutor.org/t/arrowdown.gif" alt="L" /><span class="red"> (.[0-9]*)</span>#Uis',$result,$find); $count = intval(count($find['1'])); $i = -1; $find2 = ""; while ($i <$count -1) { $i++; $find['2'][$i] = str_replace("http://s.rutor.org/i/m.png","/mini_magnet.png",$find['2'][$i]); $find['2'][$i] = str_replace("magnet:","magnet:",$find['2'][$i]); $is = $i +1; $find2 .= "<tr valign=\"top\"> <td>{$is}</td> <td>{$find['4'][$i]}</td> <td>{$find['2'][$i]}</td> <td>{$find['6'][$i]} {$find['7'][$i]}</td> <td>{$find['8'][$i]}</td> <td>{$find['9'][$i]}</td> </tr>"; } if (!$find2 or $find2 == "") { $finds = "<center>Не удалось отобразить раздачу!</center><br />"; }else { $finds = "<b>Найденные торрент раздачи на RUTOR.ORG</b> <table width=\"100%\" cellspacing=\"0\" cellpadding=\"10\"><tr valign=\"top\"> <td style=\"background: #aaaaaa; font-size: 8pt; font-family: Verdana; color: #ffffff;\">№</td> <td style=\"background: #aaaaaa; font-size: 8pt; font-family: Verdana; color: #ffffff;\">Название</td> <td style=\"background: #aaaaaa; font-size: 8pt; font-family: Verdana; color: #ffffff;\">Магнет</td> <td style=\"background: #aaaaaa; font-size: 8pt; font-family: Verdana; color: #ffffff;\">Размер</td> <td style=\"background: #aaaaaa; font-size: 8pt; font-family: Verdana; color: #ffffff;\">Сиды</td> <td style=\"background: #aaaaaa; font-size: 8pt; font-family: Verdana; color: #ffffff;\">Пиры</td> </tr>{$find2} </table> <center><span><span><a href=\"http://rutr.net\" target=\"_blank\">Хостинг изображений</a></span></center><br><br>"; } return ($finds); } $title = trim(strip_tags($_POST['title'])); @header("Content-type: text/html; charset=".$config['charset']); echo search_torrent1($title); echo search_torrent($title);;?> Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 24 октября 2011 Рассказать Опубликовано: 24 октября 2011 Дайте ссылку на страницу, где у Вас выводит иероглифы Цитата Ссылка на сообщение Поделиться на других сайтах
chelnovosti_ru 2 Опубликовано: 24 октября 2011 Рассказать Опубликовано: 24 октября 2011 Автор Вот тестовый сайт http://kinobam.ru/5-neuderzhimye-the-expendables-2010.html там вместо русских выводит иероглифы, и не знаю как это исправить... Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 24 октября 2011 Рассказать Опубликовано: 24 октября 2011 У вас сайт в utf-8 а модуль в кирилице. Я делаю так - загоняю все файлы модуля в дримвивер, нажимаем ctrl+j и там выбираем кодировку utf-8. Сохраняем и... вуаля. возможно, есть способ проще, но я делаю так, и все работает. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 24 октября 2011 Рассказать Опубликовано: 24 октября 2011 из модуля нужно убирать строчку $result = UTF8toCP1251($result); [/CODE] она переводит вам в windows-1251, а у вас сайт в UTF-8 кодировке Цитата Ссылка на сообщение Поделиться на других сайтах
chelnovosti_ru 2 Опубликовано: 24 октября 2011 Рассказать Опубликовано: 24 октября 2011 Автор Я убрал, всё равно иероглифы... Ещё хотел бы спросить, вот когда модуль выводит результаты поиска, он выводит их все, а как сделать чтобы он выводил не больше 5, знаю только что нужно редактировать $count = intval(count($find['1'])); $i = -1; $find2 = ""; while ($i <$count -1) { $i++; А что именно сделать не знаю, если вам не сложно помогите пожалуйста) Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 24 октября 2011 Рассказать Опубликовано: 24 октября 2011 я так понимаю, тот код, что вы привели, это не единственный файл, который вы заливаете на сервер? наверняка есть еще пара-тройка. попробуйте поменять кодировку у всех файлов. Насчет кол-ва результатов, сорри, не подскажу. Цитата Ссылка на сообщение Поделиться на других сайтах
chelnovosti_ru 2 Опубликовано: 24 октября 2011 Рассказать Опубликовано: 24 октября 2011 Автор Мой косяк, просто удалил только одно функцию, а вторую забыл, там парсятся торрент с двух трекеров.... Но вот не получается ограничить вывод раздач до 5 штук.... Может кто знает? Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.