0

Simple HTML DOM Parser を使用して、Web サイトから特定の div を取得しています。Explode() を使用して、必要のない div の部分を削除します。次に、保持された部分を新しい配列に分解したいのですが、何らかの理由で意図したとおりにインデックスが作成されません。

最後の行に「echo $content[0];」が表示されないのはなぜですか。print "Overall" while "echo $content[5];" 全体が最初の文字列の場合はどうなりますか? これを修正するにはどうすればよいですか?

<?php
    include_once('simple_html_dom.php');

    $html = file_get_html('http://services.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws?user1=Pur');
    $content = $html->find('div[id=contentHiscores]', 0)->plaintext;
    echo $content;
    echo "<br><br><br><br>";


    $content = explode("SkillRankLevelXP", $content);
    $content = $content[1];
    echo $content;
    echo "<br><br><br><br>";


    $content = explode(" ", $content);
    echo $content[0];

?>
4

1 に答える 1

0

SkillRankLevelXP と Overall の間には 6 つのスペースがありますが、ブラウザには 1 としか表示されません。[View Source] メニューを使用すると、私の意味がわかります。

いくつかの RegEx を使用して、2 つ以上のスペースを 1 つのスペースに置き換えることができます。そうすれば、目的に近づくことができると思います。

<?php
    include_once('simple_html_dom.php');

    $html = file_get_html('http://services.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws?user1=Pur');
    $content = $html->find('div[id=contentHiscores]', 0)->plaintext;
    $content=preg_replace('/ {2,}/', ' ', trim($content));

    $content = explode('SkillRankLevelXP ', $content);
    $content = $content[1];

    $content = explode(' ', $content);
    print_r($content);
?>
于 2013-02-23T11:05:43.457 に答える