Se connecter avec
S'enregistrer | Connectez-vous

souici de regex pour mettre des puces dans les messages posté

Dernière réponse : dans Programmation

bonjour

voilà la page

http://forum.exemple.free.fr/

il met les puces dans ie 7 et pas fire fox

et en plus il me dit érreur de w3c

http://validator.w3.org/check?uri=http%3A%2F%2Fforum.ex...

et pour temps j'ai bien mis le code :

donc voilà le principe quand on clique sur liste ça mettra dans le texterea

<puce>bonjour
<puce>au revoir

en faite comme ce site à peux pret

  • comme ce site
  • mais il y as des souci de w3c
  • et il oublie de mettre les puce dans fire fox

    voilà le code de regex donc bbcode.php

    donc j'ai éssayé

    Citation :
    // 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);




    si je met ce code

    Citation :
    // 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 );


    il n'a pas d'érreur mais oublie de mettre les puces sur les 2 navigateurs

    où si je met

    Citation :
    // 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 met les puce sur ie 7 et pas sur fire fox et il met des érreurs de w3c comme j'ai dit plus haut

    donc comment je pourrais faire pour mettre les puces dans les messages posté sans avoir d'érreur

    merci d'avance

    ps là j'ai éssayé de mettre

    Citation :
    // 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 );


    là il met bien les puces maintenant il faut enlenvé ce bout de code en fessant la même chose

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


    avec 5 érreurs

    merci
    Lassé par la pub ? Créez un compte
    Expert Programmation

    Salut,

    Tu mets tellement d'exemple qu'au final on sait même pas lequel est actuellement sur ton site :) 

    Tu veux que ce soit comment le BBCode ?
    1. <liste>
    2. <puce>puce1
    3. <puce>puce2
    4. <puce>puce3
    5. </liste>


    Ou juste
    1. <puce>puce1
    2. <puce>puce2
    3. <puce>puce3

    lol

    oui c'est vrai il y as plein d'exemple mais j'aimerais le mettre comme ça et si tu regarde le site et tu clique sur liste ça met bien :

    <puce>puce1
    <puce>puce2
    <puce>puce3

    donc il met bien sur ie 7 mais pas dans firefox

    idém pour le javasscript pour ma previsualisation dans ie 7 il met bien et pas ds fire fox

    donc j'ai mis ce code en javasscript pour la previsualisation

    Citation :
    // balise liste des puces

    t=deblaie(/(\<\/liste\> )/g,t)
    t=remplace_tag(/<puce>(.+)/g, '<ul>$1</ul>', t)

    t=remplace_tag(/<br \/>/g,'<li>$1</li>',t)

    t=remblaie( t)


    met dans fire fox il oublie le mettre dans la previsualisation

    et pour les message posté j'ai mis ça dans bbcode.php

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


    donc comment on fait pour mettre les puces dans les 2 navigateurs sans faire des <br /><br />

    car là il fait sauté des lignes entre les puces


    il fait ca

    début des phrases


  • bonjour

  • au revoir


    c'est finit

    au lieu de faire ça

    début des phrases

  • bonjour
  • au revoir

    c'est finit

    merci de ton aide
    Expert Programmation

    Désolé mais c'est toujours aussi flou ...
    Tu dis que tu veux mettre comme ça
    1. <puce>puce1
    2. <puce>puce2
    3. <puce>puce3


    Mais dans ton code PHP, tu mets des <liste> </liste> que tu transformes en <ul> </ul>

    Maintenant, ton code $texte = preg_replace('`\<liste\>`isU', '<ul>$1</ul>', $texte); Il remplace <liste> par <ul></ul>
    Ton code $texte = preg_replace('`\<puce\>`isU', '<li>$1</li>', $texte); il remplace <puce> par <li></li>

    Donc au final ton code va donner :
    1. <ul></ul>
    2. <li></li>puce1
    3. <li></li>puce2
    4. <li></li>puce3


    Toi ce que tu veux c'est
    1. <ul>
    2. <li>puce1</li>
    3. <li>puce2</li>
    4. <li>puce3</li>
    5. </ul>


    Forcément ça marche pas :) 
    Expert Programmation

    bah il a pris un algo qui marche :) 

    Là ton algorithme est pas bon, comme je t'ai dit dans ma précédente version, tu n'obtiens pas le HTML qu'il faut.

    Le truc c'est qu'en PHP, je sais pas si . prend en compte les sauts de ligne (je sais qu'en C# c'est pas pris) ce qui peut expliquer que $texte = preg_replace( '#<(liste)>(.*)</\\1>#Umsi', '<ul>$2</ul>', $texte ); ne fonctionne pas...

    re

    il faudrait envoyé un mail au créateur de ce forum pour voir comment il as fait

    en sachant moi j'ai mis <puce>

    merci tu connait son pseudo pour que je lui demande

    merci lol

    au pire je ferais comme les autres bbcodes donc :

    <puce>1 er puce</puce>

    mais ça vas sauté des lignes entres les puces donc je pense que ce n'est pas une bonne idée

    merci
    Lassé par la pub ? Créez un compte
    • Contenus similaires :
    Tom's guide dans le monde