Maison  >  Article  >  développement back-end  >  Exemple de code pour analyser et traiter HTML/XML à l'aide d'expressions régulières PHP

Exemple de code pour analyser et traiter HTML/XML à l'aide d'expressions régulières PHP

WBOY
WBOYoriginal
2023-09-09 09:55:451129parcourir

Exemple de code pour analyser et traiter HTML/XML à laide dexpressions régulières PHP

Exemple de code utilisant les expressions régulières de PHP pour analyser et traiter HTML/XML

Introduction :
Les expressions régulières sont un puissant outil de correspondance de modèles de texte qui peut être utilisé lors du traitement de données structurées telles que HTML et XML. Fournit une analyse et un traitement pratiques. capacités. Cet article explique comment utiliser les expressions régulières de PHP pour analyser et traiter le HTML/XML, et fournit des exemples de code pertinents.

1. Extraction des balises HTML
Lors du traitement HTML, il est souvent nécessaire d'extraire toutes les balises HTML du texte. Nous pouvons utiliser la fonction d'expression régulière de PHP preg_match_all pour réaliser cette fonction. Voici un exemple de code :

<?php

$html = "<div id='container'><h1>标题</h1><p>内容</p></div>";
$pattern = "/<[^>]+>/";
preg_match_all($pattern, $html, $matches);

foreach ($matches[0] as $tag) {
    echo $tag . "
";
}

?>

Dans le code ci-dessus, nous utilisons l'expression régulière /]+>/ pour faire correspondre le contenu entre crochets, c'est-à-dire HTML balises. Grâce à la fonction preg_match_all, toutes les balises correspondantes sont enregistrées dans la variable $matches et parcourues pour les imprimer. /]+>/来匹配尖括号中的内容,即HTML标签。通过preg_match_all函数,将所有匹配到的标签保存在$matches变量中,并遍历打印出来。

二、HTML标签的属性提取
除了提取HTML标签以外,有时候还需要提取HTML标签中的属性。我们可以使用PHP的正则表达式函数preg_match来实现这个功能。下面是一个示例代码:

<?php

$html = "<a href='http://www.example.com' target='_blank'>链接</a>";
$pattern = "/<as+.*?>/i";
preg_match($pattern, $html, $matches);

if (isset($matches[0])) {
    $tag = $matches[0];
    $pattern = "/href=['"](.*?)['"]/i";
    preg_match($pattern, $tag, $hrefMatches);

    if (isset($hrefMatches[1])) {
        $href = $hrefMatches[1];
        echo "链接地址:" . $href . "
";
    }
}

?>

以上代码中,我们首先使用正则表达式/<as>/i</as>匹配a标签,并使用preg_match函数将匹配到的标签保存在$matches变量中。然后,我们再使用正则表达式/href=['"](.*?)['"]/i匹配href属性,并使用preg_match函数将匹配到的属性值保存在$hrefMatches变量中。最后,我们获取到属性值后打印出来。

三、XML节点的提取
和HTML类似,我们也可以使用PHP的正则表达式来提取XML中的节点。下面是一个示例代码:

<?php

$xml = "<root><item id='1'>内容1</item><item id='2'>内容2</item></root>";
$pattern = "/<items+.*?>/i";
preg_match_all($pattern, $xml, $matches, PREG_SET_ORDER);

foreach ($matches as $match) {
    $tag = $match[0];
    $pattern = "/id=['"](.*?)['"]/i";
    preg_match($pattern, $tag, $idMatches);

    if (isset($idMatches[1])) {
        $id = $idMatches[1];
        echo "ID:" . $id . "
";
    }
}

?>

以上代码中,我们首先使用正则表达式/<items>/i</items>匹配item节点,并使用preg_match_all函数将匹配到的节点保存在$matches变量中。然后,我们再使用正则表达式/id=['"](.*?)['"]/i

2. Extraction d'attributs des balises HTML

En plus d'extraire les balises HTML, il est parfois également nécessaire d'extraire les attributs des balises HTML. Nous pouvons utiliser la fonction d'expression régulière de PHP preg_match pour réaliser cette fonction. Voici un exemple de code :
rrreee

Dans le code ci-dessus, nous utilisons d'abord l'expression régulière /<as>/i</as> pour faire correspondre la balise a, et utilisons la fonction preg_match pour correspondre à la balise enregistrée dans la variable $matches. Ensuite, nous utilisons l'expression régulière / href=['"](.*?)['"]/i pour faire correspondre l'attribut href, et utilisons la fonction preg_match pour enregistrer la valeur de l'attribut correspondant dans dans la variable $hrefMatches. Enfin, nous obtenons la valeur de l'attribut et l'imprimons. 🎜🎜3. Extraction de nœuds XML 🎜Semblable au HTML, nous pouvons également utiliser des expressions régulières PHP pour extraire des nœuds en XML. Voici un exemple de code : 🎜rrreee🎜Dans le code ci-dessus, nous utilisons d'abord l'expression régulière /<items>/i</items> pour faire correspondre le nœud d'élément et utilisons la fonction preg_match_all pour correspondre au nœud enregistré dans la variable $matches. Ensuite, nous utilisons l'expression régulière / id=['"](.*?)['"]/i pour faire correspondre l'attribut id, et utilisons la fonction preg_match pour enregistrer la valeur de l'attribut correspondant dans dans la variable $idMatches. Enfin, nous obtenons la valeur de l'attribut et l'imprimons. 🎜🎜Conclusion : 🎜Ce qui précède est un exemple de code qui utilise les expressions régulières de PHP pour analyser et traiter le HTML/XML. Grâce à la fonction puissante des expressions régulières, nous pouvons facilement extraire et traiter les balises et les attributs en HTML/XML pour obtenir un traitement flexible des données structurées. J'espère que cet article vous aidera à comprendre l'application des expressions régulières dans le traitement HTML/XML. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn