Voici mon petit problème du jour...
Dans le cadre d'un site collaboratif, je souhaite proposer aux rédacteurs la possibilité de structurer un peu mieux leurs textes, par l'insertion des filets de séparation aux endroits qu'ils estiment nécessaire...
Il y a bien sûr la balise Html "<hr />" qui sert un peu à ça, mais elle n'est pas assez souple puisqu'on ne peut pas facilement avoir différents types de filets selon les besoins... et puis, elle produit des effets un peu disgracieux selon les navigateurs...
Alors, j'ai imaginé de proposer aux auteurs une balise très simple à insérer dans leur textes, de type "__x__", composée donc de 4 tirets bas, séparés par un chiffre de 0 à 9. Ils disposeront donc de 10 filets différents pour structurer et aérer leurs textes à leur convenance.
Alors, pour réaliser cette fabuleuse prouesse technologique
<?php
function filets_sep($texte) {
// Fonction pour generer des filets de separation selon les balises presentes dans le texte fourni.
// Il y a par defaut 10 filets possibles, de 0 a 9, mais on peut en ajouter d'autres au besoin.
// Variable du nombre de filets a traiter, a modifier si plus de filets.
$nb = 9;
// Boucle pour generer les filets.
for ($nro=0; $nro<=$nb; $nro++) {
$texte = str_replace('__'.$nro.'__','<p class="filet_sep_'.$nro.'"></p>',$texte);
};
return $texte;
}
?>
Évidemment, il y aura dans une feuille de style dédiée autant de styles pré-formatés que des filets proposés.Bon, jusqu'à là ça va pas trop mal (j'espère ne pas avoir fais de grosses bêtises dans ce code, si c'est le cas, soyez indulgent avec le parfait débutant que je suis
Mais, ne nous réjuissons pas si vite, car les choses se corsent un peu, puisque je voudrais que ces remplacements ne se fassent pas dans certaines zones du texte fourni...
Mais bon, la situation n'est quand-même pas si désespérée que ça, puisque ces zones à ne pas traiter sont bien délimitées, par des balises de deux types :
- Les zones contenant des courts extraits de code, délimitées par les balises
Code : Tout sélectionner
<code>Code : Tout sélectionner
</code>Code : Tout sélectionner
<cadre>Code : Tout sélectionner
</cadre>Pourtant, je vous assure, j'ai quand-même essayé de m'en sortir tout seul en testant plusieurs choses (à mon niveau c'est déjà un exploit
Et là... j'avoue que je suis complétement largué...
Voilà, si une âme compétente et généreuse pouvait me donner une quelconque piste de solution... elle est assurée de ma réconnaissance éternelle (et oui... rien que ça
Merci