érreur de w3c pour les regex des puces

will.smith Messages postés 230 Date d'inscription   Statut Membre Dernière intervention   -  
will.smith Messages postés 230 Date d'inscription   Statut Membre Dernière intervention   -
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
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   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
  2. will.smith Messages postés 230 Date d'inscription   Statut Membre Dernière intervention   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
  3. will.smith Messages postés 230 Date d'inscription   Statut Membre Dernière intervention   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
  4. will.smith Messages postés 230 Date d'inscription   Statut Membre Dernière intervention   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