|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Inscription : janvier 2011 Messages : 43 ![]() |
bonjour,
imaginon que j'ai un texte composer de trois paragraphe [codehtml]blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla[/codehtml] [codejs]lollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollol[/codejs] [codephp]mdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdrmdr[/codephp] et que le texte entre les balise [codehtml] execute ceci : $texte = preg_replace('#\[lol\](.+)\[/lol\]#isU', '<strong>$1</strong>', $texte); et que le texte entre les balise [codejs] execute ceci : $texte = preg_replace('#\[lol\](.+)\[/lol\]#isU', '<em>$1</em>', $texte); et que le texte entre les balise [codephp] execute ceci : $texte = preg_replace('#\[lol\](.+)\[/lol\]#isU', '<u>$1</u>', $texte); |
|
|
02
|
|
|
#2 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Hello.
D'accord, si tu le dis. C'est quoi la question ? Dans mon pays on termine les phrases interrogatives par un point d'interrogation.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
11
|
|
|
#4 |
|
Inscription : janvier 2011 Messages : 43 ![]() |
|
|
|
02
|
|
|
#5 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Avec ce que tu nous as donné comme information on ne peut pas te dire comment faire: tu ne nous décrit pas ce que tu veux faire.
Citation:
C'est comme si je disait: "Voiture, bannane ! Comment faire ?" Je pense que tu voulais dire "Je souhaite encapsuler des portions de texte entre des balises à l'aide d'expression régulières." Je me trompe ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
|
|
#6 | |
|
Inscription : janvier 2011 Messages : 43 ![]() |
Citation:
voici mon texte : Je suis un gros [lol][bb]nul[/bb], et pourtant j'ai [ii]tout appris[/ii][/lol][mdr] les [bb]banane[/bb] que c'est bon les [ii]banane[/ii] j'adore[/mdr]. et j'aimerais que le texte entre les balise [lol][/lol] : - on remplace les balise [bb][/bb] par <strong></strong> - on remplace les balise [ii][/ii] par <em></em> et j'aimerais que le texte entre les balise [mdr][/mdr] : - on remplace les balise [bb][/bb] par <em></em> - on remplace les balise [ii][/ii] par <strong></strong> ... Merci d'avance |
|
|
|
00
|
|
|
#7 | ||||||||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Ah d'accord, tu veux faire ton propre bbcode en fait.
C'est relativement simple à faire, s'il ne s'agit que de "traduire" les balises bb par des balises XHTML. On va pour ça se servir d'un tableau associatif qui nous fournira cette traduction: Code :
Code :
Code :
Code :
Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||||||||||
|
10
|
|
|
#8 | |||||||||||
|
Inscription : janvier 2011 Messages : 43 ![]() |
Citation:
je ne suis que debutant donc desoler mais je n'est vraiment rien compris :s |
|||||||||||
|
|
10
|
|
|
#9 | |||
|
Membre chevronné
![]() Fred Professeur des Ecoles Inscription : mai 2009 Messages : 503 ![]() |
Citation:
Code :
Fred |
|||
|
10
|
|
|
#10 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Il faut toujours généraliser au maximum pour faciliter la maintenance. Aujourd'hui tu as besoin de 3 ou 4 balises mais quand il va falloir en rajouter tu vas faire quoi ? à chaque fois tu vas te replonger dans le code pour ajouter des fonctionnalités ?
La mécanique que je t'ai fournie utilise un tableau associatif pour connaitre les balises à remplacer et par quoi les remplacer. Par exemple 'a' => 'em' signifie qu'on rempalce [a] [/a] par <em> </em>. Seulement, on ne peut pas l'utiliser tel quel, c'est pour ça que je fais parcourir les clés et les valeurs du tableau de traduction pour fabriquer les éléments de remplacement qui seront in fine utilisé par la fonction preg_replace. A terme, tu pourra mettre ce tableau de traduction dans un fichier ini par exemple et tu pourra ajouter de nouvelles balises sans toucher au code.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#11 | |||
|
Inscription : janvier 2011 Messages : 43 ![]() |
Citation:
|
|||
|
|
00
|
|
|
#12 | |||
|
Membre chevronné
![]() Fred Professeur des Ecoles Inscription : mai 2009 Messages : 503 ![]() |
Citation:
Code :
|
|||
|
00
|
|
|
#13 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Note que ma solution n'utilise pas de structures de boucles
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#14 | |
|
Membre chevronné
![]() Fred Professeur des Ecoles Inscription : mai 2009 Messages : 503 ![]() |
Citation:
mais elle ne répond pas à la question de sourcilpower. En effet, tu ne gères pas la différence de traduction des balises selon que le code se trouve entre des balises [lol] ou [mdr]. Ce que je me suis attaché à faire. Ce qui n'empêche pas qu'il existe certainement une solution élégante à base de array_map pour supprimer les structures de boucles... Fred |
|
|
00
|
|
|
#15 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Effectivement, je me suis attaché à la transcription des balises, je ne prévois pas de comportement dissocié selon le contexte de la balise bb parente à une balise donnée.
Remarque, je me demande bien à quoi ça peut servir de faire de cette manière... En BB code, l'élément suivant helloworld est traduit par <strong><i>hello</i>world</strong> Je vois mal comment on peut avoir besoin d'autre chose...
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
Copyright © 2000-2012 - www.developpez.com