将不同网页的某些部分显示在我的网页中

时间:2013-10-03 05:13:40

标签: php html

我希望能够将我的服务器上的前10名玩家从gametracker.com显示到我的网页中。 现在我查看gametracker.com页面的源代码,该页面显示前10名玩家,部分看起来像这样

<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>'; 

是否可以使用此代码来执行我想要的操作?如果是,请写下我需要使用的代码行,或者给我一些关于如何解决这个问题的建议。

3 个答案:

答案 0 :(得分:1)

我只会发布部分答案,因为我认为这样做可能违反了GameTracker服务的使用条款,您所要求的基本上是从其他网站窃取专有内容的方法。在你这样做之前,你最应该从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.

现在我将由您决定如何切断前十名完成后不需要的内容并获得GameTracker的许可以使用它。

答案 1 :(得分: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;

?>

答案 2 :(得分:0)

您提供的代码是simpledom库的一部分

http://simplehtmldom.sourceforge.net/

您需要下载并包含库才能使代码生效。