Salut à tous,
Donc pour apprendre la POO, j'ai décidé d'encapsuler un vieux parseur d'HTML que j'avais écrit y a ... une semaine. Donc voilà le résultat. Il parse n'importe quelle balise, et gère l'imbrication de 2 balises identiques (par exemple '<div>BALISE 1<div>BALISE 2</div></div>' en revoyant d'abord la balise 1 puis la balise 2) ainsi que les propriété des balises quelque soit la façon dont elle sont écrite.
Il n'y a pas de fonction autre pour l'instant parce que je ne savais pas quoi mettre ... Mais ça a le merite de fonctionner.
Source / Exemple :
/* ----------------------- */
// Donc utilisation : //
/* ----------------------- */
$object = new html_parser('http://www.url.com/);
$link_list = $object -> parse_balise('<a></a>');
$img_list = $object -> parse_balise('<img />');
/* ----------------------- */
Et ça renvoie un tableau indexé avec chaque index qui contient la balise avec le contenu si il y en a un (['content']) et les propriétés (['href'], ['onclick'], etc ...).
Conclusion :
Je sais, ça merite plus de documentation et de commentaire et c'est pour ça qu'une mise à jour est prévu pour ... Bientôt !
(c) LocalStone :D
26 juil. 2006 à 14:29
Juste une ultime correction : Si les paramètres ne sont pas de la forme : param="valeur" mais param=valeur, le programme freeze (boucle infinie).
Pour corriger ce petit bug, ajouter juste le "?" dans la ligne :
while (!(preg_match('/^(.*)(\'|")?$/', $property_current, $property_result))) {
de la fonction get_balise_property();
16 déc. 2005 à 03:16
je l'ai met l'url que je veux parser
6 juin 2005 à 08:32
donc enregistre ton contenu dans un fichier, puis traite-le
mais je suppose que c'est pour vérifier la non-présence de balises HTML dans ton formulaire
pour cela utilise: strip_tags()
19 mai 2005 à 16:38
Petite question complémentaire à ce code source très efficace :)
Je désire parser une page HTML obtenue après le POST d'un formulaire :
<form action="http://www.machin.com/test.php" method="post" target="_self" style="display:inline">
</form>
Quelqu'un saurait-il comment faire pour récupérer le contenu de la page en question ?
Merci
Patrick
2 janv. 2005 à 23:20
quand je met le script tel quel, il y a une erreur car il manque une appostrophe dans object= ...
quand je le change j'obtiens:
Warning: Wrong parameter count for implode() in c:\program files\easyphp\www\ftp\html_parser.class.php on line 50
merci de me répondre,
cordialement,
kevin (kegi@hotmail.com)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.