Problème d'analyse de noeud
Posté : 30 juin 2008, 14:48
Bonjour à toutes et tous,
J'ai créé une fonction qui analyse un noeud et qui remplace ses balise par du PHP, pour un moteur de template, non Cyrano, me tape pas
, mais je n'arrive pas à a faire en sorte que lorsque la balise ne soit pas dans mon tableau ça affiche le noeud tel quel, voilà ma fonction :
Que je puisse retourner ça :
Par avance merci
J'ai créé une fonction qui analyse un noeud et qui remplace ses balise par du PHP, pour un moteur de template, non Cyrano, me tape pas
function parsage_normal($noeud, $contenu_a_inserer='')
{
// Tableau des balises ouvrantes
$balise_1 = array('if' => 'if($1){', 'else' => 'else {', 'elseif' => 'elseif($1){',
'boucle' => '**$1**', '#text' => 'echo "', 'normal' => 'echo "$0');
// Tableau des balises fermantes
$balise_2 = array('if' => '}', 'else' => '}', 'elseif' => '}', 'boucle' => '**fin**', '#text' => '":',
'normal' => '";');
// Tableau des attributs
$attributs = array('cond' => 'valeur', 'condition' => 'valeur', 'nom' => 'valeur');
if(in_array($noeud->nodeName, $balise_1)) $nom = $noeud->nodeName; // On récupère le nom du noeud
else $nom="normal";
$nom_b=$noeud->nodeName;
if(!empty($contenu_a_inserer)) // On détermine si on veut spécifier du contenu pré-parsé.
{
$contenu = $contenu_a_inserer; // Si c'est le cas, on met la variable de fonction en contenu
}
else
{
$contenu = $noeud->nodeValue; // Sinon, le contenu du noeud.
}
$premiere_balise = $balise_1[$nom]; // Première balise (ouvrante)
if($noeud->hasAttributes()) // On remplace les attributs
{
$un = $noeud->attributes->getNamedItem($attributs[$nom])->nodeValue; // Récupération de la valeur de l'attribut
$premiere_balise = str_replace("$1", $un, $premiere_balise); // On remplace la valeur $1 par celle de l'attribut
}
$intermediaire = $premiere_balise . $contenu . $balise_2[$nom]; // On assemble le tout
if($nom == 'template')
{
$intermediaire = nl2br($intermediaire); // On saute des lignes au résultat final
}
return $intermediaire; // On renvoie le texte parsé.
}
J'aimerais, par exemple, que pou ce noeud :Code : Tout sélectionner
<p class=\"page2\">Un texte qui sert à rien</p>echo "<p class=\"page2\">Un texte qui sert à rien</p>";
Quelqu'un à une idée ? Je sêche complètement :/Par avance merci