érreur de w3c pour les regex des puces

will.smith Messages postés 264 Statut Membre -  
will.smith Messages postés 264 Statut Membre -
Bonjour,

voilà j'ai mis des regex pour mettre des puces dans bbcode.php

donc voilà

// Balise Des Listes Des Puces 
$texte = preg_replace('`\<liste\>`isU', '<ul>$1</ul>', $texte); 
$texte = preg_replace('`\<puce\>`isU', '<li>$2</li>', $texte); 
$texte = preg_replace('`\<br \>`isU', '</puce>$3</liste>', $texte);


il met bien les puces donc ça c'est bon

mais il y as une érreur

 Line 57, Column 3: document type does not allow element "li" here; missing one of "ul", "ol", "menu", "dir" start-tag . 
<li></li>1 er puce<br /><br />&#9993; 
The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element. 

One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>"). 

 Line 58, Column 3: document type does not allow element "li" here; missing one of "ul", "ol", "menu", "dir" start-tag . 
<li></li>2 éme puces<br /><br />&#9993; 
The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element. 

One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>"). 

 Line 59, Column 3: document type does not allow element "li" here; missing one of "ul", "ol", "menu", "dir" start-tag . 
<li></li>3 eme puces<br /><br />&#9993; 
The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element. 

One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>"). 


appriorie si je regarde la source il manque une fermeture de la balise

car la source

<li></li>1 er puce<br /><br /> 
<li></li>2 éme puces<br /><br /> 
<li></li>3 eme puces<br /><br /> 


je ne sais pas pour quoi et pour temps j'ai bien mis la fermeture dans bbcode.php

merci de votre aide

4 réponses

Dalida Messages postés 7114 Statut Contributeur 923
 
salut,

document type does not allow element "li" here; missing one of "ul"

le type de document n'autorise pas d'élément "li" ici ; il manque la balise ouvrante d'un élément parmi "ul", "ol", "menu", "dir".

il faut que tu arrives à ça :
<ul>
<li>1 er puce</li>
<li>2 éme puces</li>
<li>3 eme puces</li>
</ul>
1
will.smith Messages postés 264 Statut Membre 10
 
re oui c'est sur j'ai bien <ul></ul> dans mes balises regex

// Balise Des Listes Des Puces 
$texte = preg_replace('`\<liste\>`isU', '<ul>$1</ul>', $texte); 
$texte = preg_replace('`\<puce\>`isU', '<li>$2</li>', $texte); 
$texte = preg_replace('`\<br \>`isU', '</puce>$3</liste>', $texte);


donc je ne comprend pas pour quoi il ne comprend pas <ul></ul>

merci
1
will.smith Messages postés 264 Statut Membre 10
 
re

je pense avoir touvé mais il reste un souci

quand je met

// Balise Des Listes Des Puces 
$texte = preg_replace( '#<(liste)>(.*)</(\\1)>#Umsi', '<ul>$2</ul>', $texte );
$texte = preg_replace( '#<puce>(.*)\n#Umsi', '<li>$1</li>', $texte );



pas d'érreur mais oublie de mettre les puces

mais si je met < =<

// Balise Des Listes Des Puces
$texte = preg_replace( '#<(liste)>(.*)</(\\1)>#Umsi', '<ul>$2</ul>', $texte );
$texte = preg_replace( '#<puce>(.*)\n#Umsi', '<li>$1</li>', $texte );





là il remet les puces avec les érreurs de fermeture

merci
1
will.smith Messages postés 264 Statut Membre 10
 
re

j'ai éssayé de mettre ça pour voir

// Balise Des Listes Des Puces 
$texte = '<liste>
<puce>bonjour
<puce>voilà
<puce>ceux que je veux faire
</liste>';
 
$texte = preg_replace( '#<(liste)>(.*)</\\1>#Umsi', '<ul>$2</ul>', $texte );
$texte = preg_replace( '#<puce>(.*)\n#Umsi', '<li>$1</li>', $texte );


et là il met bien les puces avec ces érreurs

http://validator.w3.org/...

donc maintennt il faut enlenvé

$texte = '<liste>
<puce>bonjour
<puce>voilà
<puce>ceux que je veux faire
</liste>';

pour que ça fonctionne mais je cherche qqun qui peut m'aidé

merci de votre
1