bluemandfr
Messages postés55Date d'inscriptionvendredi 7 septembre 2007StatutMembreDernière intervention16 mai 2013
-
16 nov. 2009 à 00:40
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 2012
-
16 nov. 2009 à 20:58
Bonjour à tous !
Je cherche une fonction qui me permettrait de parser du HTML contenu dans une variable $HMTL, et ce, de manière linéaire (pas d'arborescence), et plus précisément, que la fonction retourne un tableau à 2 dimensions avec pour chaque ligne i :
Result[i][0] : un booléen : true = indique que la ligne est une balise et false que la ligne est du texte hors balises.
Result[i][1] : une string valant soit une balise (exemple : ) ou le texte entre deux balises.
Attention :
- Cette fonction doit tenir comte que dans le texte, il peut y avoir des caractères < ou >
- Elle doit aussi parser du HTML contenant du Javascript.
Si vous savez comment réaliser cela, ou bien si vous connaissez une fonction écrite par quelqu'un, merci de me le faire savoir!
Tonio_35
Messages postés567Date d'inscriptionmercredi 4 octobre 2006StatutMembreDernière intervention30 août 201111 16 nov. 2009 à 15:29
Bon c'est une idée pour une réflexion de départ, pas une solution :
<?php
for ($c = 0, $total=strlen($HTML); $c<$total; $c++)
{
// Si le caractère est un < on entre dans du html
if ($txt[$c]=="<")
$inhtml=true;
// Si t'est dans une balise et que tu croise un >, c'est la fin de la balise
if($inhtml && $txt[$c]==">")
$inhtml=false;
}
?>
Pour ce qui es de savoir si c'est un < de balise ou un < mis au hasard dans le texte c'est plus dur...
_________________________________
Min iPomme
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 16 nov. 2009 à 20:58
Salut,
Le mieux reste de créer une classe à grand coup de regex, sans cela il me parait difficile d'atteindre le but.
Il faut aussi bien définir ce que tu veux :
- parser ? ça veut tout et rien dire : quel est le but ?
- que souhaites tu parser : du HTML d'il y a 10 ans (comme l'exemple que tu cites) ou du XHTML Strict ?
- etc ...