Обсуждение World of Tanks и всего, что с ним связано.
#868 Edrard 14 сен 2011, 16:27
Я немного переделал скрипт, с учетом всех предложений и пожеланий, не только тех которые были здесь, но и у меня на форуме. Добавил сигнатуры от emem.ru, имена стали ссылками на офф статистику, добавил Количество дней в клане, и счетчик количества игроков в клане. А вы уже дальше удаляйте что вам ненужно.

Не забудьте изменить $clan_id = '1'; на id вашего клана

Как всегда, пример можете посмотреть тут - https://wot-news.com/1/1.php

UPD. 16.09.2011

* Добавлена проверка, жив ли emem.ru

UPD. 07.11.2011

* Апдейт скрипта в связи с изменениями на главном сайте.

<?php
    header("Content-type: text/html; charset=utf-8");
    $clan_id = '1';
    $request = "GET /uc/clans/".$clan_id."/members/?type=table HTTP/1.0\r\n";
    $request.= "Accept: text/html, */*\r\n";
    $request.= "User-Agent: Mozilla/3.0 (compatible; easyhttp)\r\n";
    $request.= "X-Requested-With: XMLHttpRequest\r\n";
    $request.= "Host: worldoftanks.ru\r\n";
    $request.= "Connection: Keep-Alive\r\n";
    $request.= "\r\n";

    $wot_host="worldoftanks.ru";

    $fp = fsockopen("worldoftanks.ru", 80, $errno, $errstr, 60);
    if (!$fp) {
        echo "$errstr ($errno)<br>\n";
    } else {
        fwrite($fp, $request);
        $page = '';
        while (!feof($fp)) {
            $page .= fgets($fp, 4096);
        }
        fclose($fp);
    }
    preg_match_all("/{\"request_data\":(.*?),\"result\":\"success\"}/", $page, $matches);
    $new = (json_decode($matches[0][0], true));
    //print_r($new);
    $headers = @get_headers('http://emem.ru', 1);
    if($headers[0] == 'HTTP/1.1 200 OK'){
        $mark = '';
    }

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Список клана</title>

        <link rel="stylesheet" href="http://tablesorter.ru/docs/css/jq.css" type="text/css" media="print, projection, screen" /> 
        <link rel="stylesheet" href="http://tablesorter.ru/themes/blue/style.css" type="text/css" media="print, projection, screen" /> 
        <script type="text/javascript" src="http://tablesorter.ru/jquery-latest.js"></script> 
        <script type="text/javascript" src="http://tablesorter.ru/jquery.tablesorter.js"></script> 
        <script type="text/javascript"> 
            $(document).ready(function() { 
                // теперь по умолчанию у нас всегда будет запускаться виджет зебра 
                $.tablesorter.defaults.widgets = ['zebra']; 
                // теперь по умолчанию всегда будем сортировать по первой колонке 
                $.tablesorter.defaults.sortList = [[0,0]]; 
                // вызов плагина 
                $("table").tablesorter();
            });    
        </script> 
        <style>
            .num {
                font-size: 17px;
                font-weight: bold;
            }
        </style>
    </head>
    <body>
        <div align="center">
            <table class="tablesorter" cellspacing="1" style="width: 1000px;">              
                <thead> 
                    <tr>
                        <th>Имя</th> 
                        <th>ID</th> 
                        <th>Состоит в клане</th>
                        <th>Дней в клане</th> 
                        <th>Звание</th>
                        <?php if(isset($mark)){ ?>
                            <th>Сигнатура и статистика</th> 
                            <?php } ?> 
                    </tr>  
                </thead>
<tbody>
                    <?php foreach($new['request_data']['items'] as $val){ 
                            $new_time = date('Y.m.d',$val['member_since']);
                        ?>  
                        <tr> 
                            <td><a href="http://challenge.worldoftanks.ru/uc/accounts/<?php echo $val['account_id']; ?>-<?php echo $val['name']; ?>" 
                                    target="_blank"><?php echo $val['name']; ?></a></td> 
                            <td><?php echo $val['account_id']; ?></td> 
                            <td><?php echo $new_time; ?></td>
                            <td><?php echo floor((time() - mktime(0, 0, 0, date("m", $val['member_since']), date("d", $val['member_since']), date("Y", $val['member_since'])))/(3600*24)); ?></td> 
                            <td><?php echo $val['role']; ?></td>
                            <?php if(isset($mark)){ ?>
                                <td align="center"><a href="http://emem.ru/WoT/history/<?php echo $val['name']; ?>/" target="_blank">
                                        <img src="http://emem.ru/WoT/stat/<?php echo $val['account_id']; ?>/sv22-default.png" 
                                            alt="<?php echo $val['name']; ?>" title="Просмотреть подробную статистику игрока 
                                            <?php echo $val['name']; ?>"></a></td>
                                <?php } ?>  
                        </tr>
                        <?php } ?>
                </tbody>  
            </table>
            <p class="num">Всего игроков: <?php echo count($new['request_data']['items']) ?></p>
        </div> 
    </body>
</html>
#871 Edrard 14 сен 2011, 17:30
Попробуйте еще раз, просто установил новый плагин для подсветки синтаксиса, а он воспринял \n как переход на новую строку, а это на самом деле не так.
#872 Mooskat 14 сен 2011, 18:13
bazker писал(а):Добрый день.
Пытаюсь впихнуть ваш скрипт в блок своего клана на blogspot.com
Не получается. Судя по всему скрипт не выполняется. Можете помочь?

Слонярааа и ты здесь! ))) А вообще поддерживаю скрипт полезный

Правда у меня на сайте с кодировкой косяки были - у меня сайт на 1251 работает и при вставке этого скрипта весь сайт в кракозябрах был :(

#873 Edrard 14 сен 2011, 19:33
Это естественно, так как это не просто скрипт, а уже готовая страница, просто попросите кого-то знакомого с HTML, что бы он помог вставить данный код вам на страничку, при этом убрал лишний хидер.
По поводу windows1251 вот было решение -

надо убрать первую строку -

Код: Выделить всёheader("Content-type: text/html; charset=utf-8"); 


а затем конвертироваться записи в windows 1251, иначе никак, просто официальный сайт работает в utf-8 и соответственно отдает все в этом формате.

Код: Выделить всё
<td><?php echo "<a href=http://challenge.worldoftanks.ru/uc/accounts/".iconv("UTF-8""windows-1251",$val['account_id'])." target=top>".iconv("UTF-8""windows-1251",$val['name'])."</a>"?></td>


Это для столбика имен. Используя функцию iconv можно по аналогии переписать везде.
#874 bazker 15 сен 2011, 10:16
Admin писал(а):Попробуйте еще раз, просто установил новый плагин для подсветки синтаксиса, а он воспринял \n как переход на новую строку, а это на самом деле не так.

как я понимаю проблема в том, что блогспот не дает пхп скрипту выполняться. в результате - пустая таблица. как обойти - не знаю.


ПС Мускат. привет.
#876 bazker 15 сен 2011, 16:50
stailx1 писал(а):может вы протупили и вставляете пхп в НТМЛ страницу? ю таком случае лучше залить скрипт отдельным файлом и загрузить через iframe

Именно.
Можно подробнее об обертке?
#878 Mooskat 15 сен 2011, 18:17
Проблема в том, что если емем слёг как сегодня весь день, то таблица не грузит сигнатуры.
Отсюда предложение - возможно ли дописать скрипт, чтобы скрипт грузил все сигнатуры к себе в папку и затем использовал их?

#879 stailx1 16 сен 2011, 13:46
советую емем не загружать без необходимости, иначе чем больше народу будет пользоваться скриптом, тем больше вероятность что админ емема пережит эту фичу. т.к. на эмем нагрузка идет нефиговая.

по поводу загрузки создаем на хосте файл типа clan.php в него заливаем скрипт,
потом на нужно странице в нужном месте пишем
<iframe src="путь к вашему файлу clan.php " ></iframe> более подробный мануал по этому тегу лежит сдесь. http://htmlbook.ru/html/iframe

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 32

Реклама | Adv
cron