2 votes

Supprimer une section de HTML avec PHP

J'ai une page html que je veux modifier. Je veux supprimer une certaine section comme la suivante :

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

Je veux pouvoir supprimer les balises et tout le contenu qu'elles contiennent. L'idée est d'éditer une page et de la réafficher sans certaines données que je ne veux pas voir (d'où la suppression de certaines sections).

Comment puis-je faire cela en php ?

2voto

g t Points 2660

Je vous recommande d'analyser le code au format XML, puis d'utiliser XPath pour dé/sélectionner les nœuds dont vous avez besoin. Voici un point de départ :

$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...
}

0voto

Amarghosh Points 33957

Est-ce que vous hébergez cette page directement ou est-ce que vous la lisez dans php, et l'affichez après l'avoir analysée ? Dans le premier cas, vous pouvez lui donner un nom de fichier .php et englober ces lignes dans <? if(0): ?> <? endif; ?> blocs

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X