Удалить раздел HTML с PHP - PullRequest
2 голосов
/ 16 июля 2010

У меня есть HTML-страница, которую я хочу редактировать.Я хочу удалить определенный раздел, например, следующий:

<ul class="agentDetail">
........
.......
........
</ul>

Я хочу иметь возможность удалять теги и все содержимое между ними.Идея состоит в том, чтобы отредактировать страницу и заново отобразить ее без некоторых данных, которые я не хочу видеть (отсюда удаление некоторых разделов).

Как я могу сделать это в php?

Ответы [ 2 ]

2 голосов
/ 16 июля 2010

Я бы порекомендовал разобрать код как XML, а затем использовать XPath, чтобы де / выбрать нужные вам узлы. Вот отправная точка:

$dom = getDom("http://www.stackoverflow.com");
parseDom($dom);

function getDom($url)
{
    $contentUtf8 = $this->fetchDataFromUrl($url);
    $htmlData = mb_convert_encoding($contentUtf8, 'HTML-ENTITIES', "UTF-8");

    $dom = new DomDocument('1.0', 'utf-8');
    $dom->substituteEntities = false;
    $dom->preserveWhitespace = false;
    @$dom->loadHTML($htmlData);

    return $dom;
}

function parseDom($dom)
{
    $xpath = new DOMXPath($dom);
    $nodes = $xpath->query("//ul[@class='agentDetail']");

    // manipulate nodes here...
}
0 голосов
/ 16 июля 2010

Вы размещаете эту страницу напрямую или читаете ее в php и выводите ее после анализа?В первом случае вы можете задать ему расширение .php и заключить эти строки в блоки <? if(0): ?> <? endif; ?>

<?php if(0): ?>
<ul class="agentDetail">
........
.......
........
</ul>
<?php endif; ?>
...