J'ai passé du temps sur regex pour résoudre ce problème mais pas de résultat J'essaie de résoudre ce problème en utilisant PHP 5.3 Information like - Combien de fois répète dans la page et des informations sur tous les tags de la page.Compter tous les balises HTML dans la page PHP
Répondre
Je vous suggère extrayez simple html dom
Son un grand paquet pour une tâche simple:/ – RobertPitt
Votre question est malheureusement à peine compréhensible dans sa forme actuelle. S'il vous plaît, essayez de le mettre à jour et d'être plus précis. Si vous voulez compter toutes les balises HTML dans une page, vous pouvez le faire:
$HTML = <<< HTML
<html>
<head>
<title>Some Text</title>
</head>
<body>
<p>Hello World<br/>
<img src="earth.jpg" alt="picture of earth from space"/>
<p>
<p>Counting Elements is easy with DOM</p>
</body>
</html>
HTML;
En comptant tous DOMElements avec DOM:
$dom = new DOMDocument;
$dom->loadHTML($HTML);
$allElements = $dom->getElementsByTagName('*');
echo $allElements->length;
Ce qui précède la sortie 8
, parce qu'il ya huit éléments le DOM. Si vous devez également savoir la distribution des éléments, vous pouvez faire
$elementDistribution = array();
foreach($allElements as $element) {
if(array_key_exists($element->tagName, $elementDistribution)) {
$elementDistribution[$element->tagName] += 1;
} else {
$elementDistribution[$element->tagName] = 1;
}
}
print_r($elementDistribution);
Ce retourneraient
Array (
[html] => 1
[head] => 1
[title] => 1
[body] => 1
[p] => 2
[br] => 1
[img] => 1
)
Notez que getElementsByTagName retourne DOMElements seulement. Il ne prend pas en compte les balises de fermeture et ne renvoie pas d'autres DOMNodes. Si vous devez également compter les balises de fermeture et d'autres types de nœuds, utilisez plutôt XMLReader.
$testHTML = file_get_contents('index.html');
$search = preg_match_all('/<([^\/!][a-z1-9]*)/i',$testHTML,$matches);
echo '<pre>';
var_dump($matches[1]);
echo '</pre>';
Vous donne un tableau de tous les tags. Une fois que les données sont dans le tableau, vous pouvez utiliser toutes les fonctions de tableau PHP standard - par ex. array_count_values () - pour extraire les détails que vous voulez ... si vous n'êtes pas vraiment dire ce que l'information que vous voulez sur les balises html
En utilisant array_count_values () avec les résultats du preg_match_all():
echo '<pre>';
var_dump(array_count_values($matches[1]));
echo '</pre>';
donne
array(5) {
["html"]=>
int(1)
["head"]=>
int(1)
["title"]=>
int(1)
["body"]=>
int(1)
["h1"]=>
int(2)
}
Est-ce que vous voulez?
- 1. Comment compter les balises html et le contenu
- 2. PHP DOMDocument dépouillant les balises HTML
- 3. balises html dans les balises d'option
- 4. Compter les colonnes dans un tableau HTML avec PHP
- 5. compter tous les éléments dans un dictionnaire
- 6. PHP limite la chaîne de texte PAS les balises html?
- 7. compter les caractères dans php
- 8. Remplacer les balises html
- 9. Comment faire pour supprimer un morceau de balises HTML dans une page HTML en utilisant PHP
- 10. Rendre les balises html sélectionnables dans GWT
- 11. PHP Regex correspondre à toutes les balises HTML
- 12. Preg texte de correspondance en php entre les balises html
- 13. Compter les balises contenues dans un iframe en utilisant jquery
- 14. comment fermer les balises html ouvertes automatiquement avec php?
- 15. Extrait tous les liens entre les balises HTML spécifié à partir d'un fichier html avec sed
- 16. Prévenir ou effacer les balises HTML/CSS
- 17. Postfix comment compter tous les emails sortants?
- 18. Autoriser les balises html vides dans ckeditor
- 19. Balises html dans les données renvoyées par json
- 20. javascript wont pas analyser les balises php html
- 21. Expressions régulières PHP pour nettoyer les balises HTML dupliquées
- 22. Comment cacher des balises HTML avec PHP?
- 23. Comment autoriser les balises dans HTML Purifier?
- 24. personnalisés Ajout d'attributs dans les balises html
- 25. PHP: Filtrer les balises html spécifiques d'un texte donné
- 26. balises HTML « propriétaire » dans HTML 4.01
- 27. Remplacer dynamiquement les balises html
- 28. En utilisant PHP, comment analyser le titre et les balises META à partir d'une page HTML?
- 29. Bloquer des balises HTML dans une page Web
- 30. Est-ce que l'injection de balises vidéo (HTML 5) via JavaScript fonctionne dans tous les navigateurs?
s'il vous plaît poster ce que vous avez essayé. Si vous voulez juste un nombre d'éléments de dom, vous obtiendrez probablement un meilleur résultat de javascript, mais php peut le faire en utilisant libxml ... en supposant qu'il est valide xhtml. – Gabriel
Si vous le faites depuis PHP, vous devriez utiliser la classe [DOMDocument] (http://php.net/manual/fr/class.domdocument.php). Voir la réponse de Gordon ici: [str_replace dans certaines balises html seulement] (http://stackoverflow.com/questions/3172493/str-replace-within-certain-html-tags-only) – Mike
J'essaye d'aimer ce problème en utilisant reg exp et substr logique était la prochaine toute la page convertir en 1 chaîne longue trouver balise html et cont tous les autres dans le texte après tout supprimer et compter – Alexandr