0

サーバーのトップ 10 プレイヤーを gametracker.com から自分の Web ページに表示できるようにしたいと考えています。今、トップ10のプレイヤーを表示しているgametracker.comページのソースコードを調べたところ、その部分は次のようになっています

<div class="blocknew blocknew666">
        <div class="blocknewhdr">
            TOP 10 PLAYERS <span class="item_text_12">(Online &amp; Offline)</span>
        </div>
        <table class="table_lst table_lst_stp">
            <tr>
                <td class="col_h c01">
                    Rank
                </td>
                <td class="col_h c02">
                    Name
                </td>
                <td class="col_h c03">
                    Score
                </td>
                <td class="col_h c04">
                    Time Played
                </td>
            </tr>
            .
            .
            .
            .
        </table>
        <div class="item_h10">
        </div>
<a class="fbutton" href="/server_info/*.*.*.*:27015/top_players/">
            View All Players &amp; Stats
        </a>
    </div>

ご覧のとおり、必要なコンテンツはclass="blocknew blocknew666"ID 内にある場合は簡単に取り出すことができましたが、コンテンツがクラス内にある場合の処理​​方法がわかりません。ちょっとネットで調べてたらここにたどり着きました

// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');

// Find all images
foreach($html->find('img') as $element)
       echo $element->src . '<br>';

// Find all links
foreach($html->find('a') as $element)
       echo $element->href . '<br>'; 

このコードを使用して、私がやりたいことを行うことは可能ですか? はいの場合は、使用する必要があるコード行を書くか、この問題に取り組む方法について提案してください。

4

3 に答える 3

1

これを行うことは GameTracker サービスの利用規約に違反する可能性があると思われるため、部分的な回答のみを投稿します。あなたが求めているのは、基本的に別の Web サイトから独自のコンテンツを盗む方法です。これを行う前に、GameTracker から許可を取得する必要があります。

これを行うには、strstr を使用します。http://php.net/manual/en/function.strstr.php

$html = file_get_html('http://www.gametracker.com/server_info/someip/');
$topten = strstr($html, 'TOP 10 PLAYERS');
echo $topten; //this will print everthing after the content you looked for.

トップ 10 が終わった後に来る不要なコンテンツを切り捨てる方法と、これを使用する許可を GameTracker から得る方法を理解することは、あなたに任せます。

于 2013-10-03T05:45:28.937 に答える
0

あなたが提供したコードは simpledom ライブラリの一部です

http://simplehtmldom.sourceforge.net/

コードを機能させるには、ライブラリをダウンロードして含める必要があります。

于 2013-10-03T06:50:19.963 に答える
0

振戦の提案に基づいて、これは上記の問題の作業コードです

    <?php

function rstrstr($haystack,$needle)
    {
        return substr($haystack, 0,strpos($haystack, $needle));
    }

$html = file_get_contents('http://www.gametracker.com/server_info/*.*.*.*:27015/');
$topten = strstr($html, 'TOP 10 PLAYERS');//this will print everthing after the content you looked for.
$topten = strstr($topten, '<table class="table_lst table_lst_stp">');
$topten = rstrstr($topten,'<div class="item_h10">'); //this will trim stuff that is not needed
echo $topten;

?>
于 2013-10-03T06:27:24.747 に答える