"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment extraire du texte des éléments HTML avec des classes spécifiques en tableaux plats en utilisant PHP DOM?

Comment extraire du texte des éléments HTML avec des classes spécifiques en tableaux plats en utilisant PHP DOM?

Publié le 2025-02-06
Parcourir:193

How to Extract Text from HTML Elements with Specific Classes into Flat Arrays using PHP DOM?

Extraction du texte plat à partir d'éléments avec une classe désignée utilisant php dom

Extraction du texte à partir d'éléments HTML spécifiques est une tâche commune dans le développement Web. PHP Dom fournit des outils robustes pour analyser le HTML et accéder à son contenu. Cet article répond à une exigence spécifique pour extraire le texte des éléments avec une classe désignée en deux tableaux plats.

problème

Contenu HTML contenant du texte distribué entre plusieurs éléments p avec Les noms de classe en alternance, la tâche consiste à enregistrer le texte en deux tableaux: un pour les titres et un pour le contenu. Par exemple, étant donné le html suivant:

Chapter 1

This is chapter 1

Nous devons obtenir la sortie suivante:

$heading = ['Chapter 1', 'Chapter 2', 'Chapter 3'];
$content = ['This is chapter 1', 'This is chapter 2', 'This is chapter 3'];

Solution

pour accomplir cette extraction en utilisant PHP DOM, nous utilisons DomDocument et Domxpath. La solution implique les étapes suivantes:

  1. Chargez le html en un objet DomDocument:
$dom = new DOMDocument();
$dom->loadHTML($test);
  1. Créez un objet Domxpath pour effectuer xpaths:
$xpath = new DOMXPath($dom);
  1. Utilisez la fonction parSetoArray () pour extraire le texte des éléments avec une classe spécifiée:
$heading = parseToArray($xpath, 'Heading1-H');
$content = parseToArray($xpath, 'Normal-H');

dans la fonction ParTetoArray ():

  • Il effectue une requête XPath pour la classe désignée.
  • itère à travers les nœuds correspondants et extrait leur contenu de texte.
  • stocke le texte extrait dans un tableau, qui est renvoyé.

Voici le code php complet:

query($xpathquery);

    $resultarray = [];
    foreach ($elements as $element) {
        $nodes = $element->childNodes;
        foreach ($nodes as $node) {
            $resultarray[] = $node->nodeValue;
        }
    }

    return $resultarray;
}

$test = 
    Chapter 1

This is chapter 1

Chapter 2

This is chapter 2

Chapter 3

This is chapter 3

HTML; $dom = new DOMDocument(); $dom->loadHTML($test); $xpath = new DOMXPath($dom); $heading = parseToArray($xpath, 'Heading1-H'); $content = parseToArray($xpath, 'Normal-H'); var_dump($heading); echo "
"; var_dump($content); echo "
";

Cette approche utilise la puissance de PHP DOM et XPATH pour extraire efficacement le texte des documents HTML, permettant une manipulation de contenu plus complexe et ciblée.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3