0

リモートページからhtmlソースコードを取得してから、いくつかtbodyのsを削除しています

ソースは私のページでそれをエコーし​​ますこれはすべてうまくいきますが、私が立ち往生している問題は私が

h3これはコードが表示できる唯一の方法であるため、同じタグに2つのクラス名を入れたい

ちゃんとマイページに

<?php
    //Get the url
    $url = "http://lsh.streamhunter.eu/static/section35.html";
    $html = file_get_contents($url);
    $doc = new DOMDocument(); // create DOMDocument
    libxml_use_internal_errors(true);
    $doc->loadHTML($html); // load HTML you can add $html

    $elements = $doc->getElementsByTagName('tbody');

    $toRemove = array();

    // gather a list of tbodys to remove
    foreach($elements as $el)
      if((strpos($el->nodeValue, 'desktop') !== false) && !in_array($el->parentNode, $toRemove, true))
        $toRemove[] = $el->parentNode;    

            foreach($elements as $el)
      if((strpos($el->nodeValue, 'Recommended') !== false) && !in_array($el->parentNode, $toRemove, true))
        $toRemove[] = $el->parentNode;  

    // remove them
    foreach($toRemove as $tbody)
      $tbody->parentNode->removeChild($tbody);

    echo $doc->saveHTML(); // save new HTML
?>

2 つのクラス名を作成する方法eventtitlelshjpane-toggler lshtitle

同じ h3 タグにあること 各タグが別々ではない

編集:このコードを明確にするために

<h3 class="lshjpane-toggler lshtitle eventtitle150909" onclick="getEvent(150909)"></h3><table cellpadding="0" cellspacing="0" border="0"><tr><td valign="middle" width="20px;" height="20px;" style="padding:0px 0px 0px 5px; background: url(/images/stories/kr.png) no-repeat scroll center;"></td> <td valign="middle" style="padding:0px 0px 0px 5px;"><span class="lshstart_time">12:00</span></td> <td valign="middle" style="padding:0px 0px 0px 5px;"><span class="lshevent">Daekyo Kangaroos Women - Incheon Red Angels Women</span></td> </tr></table><h3 id="preloadevent150909" style="display:none" class="preload-lshjpane-toggler"></h3>

</h3>before<tableが削除された場合にのみ正しく表示されます

リモート ページから取得したコードからこのタグを削除するにはどうすればよいですか

4

1 に答える 1

0

私があなたの場所にいた場合、表示する前にページ全体を変数に保存します。

$page = $doc->saveHTML();

次に、</h3><tableをに置き換え<tableます。

$page = str_replace('</h3><table', '<table', $page);

結果をエコーし​​ます。

echo $page; // echo $page

しかし、主な問題はそれを<table>入れることができないことで<h3>あり、それがおそらくあなたが望むコードを取得できない理由だと思います。

于 2013-05-27T06:54:45.240 に答える