Bonjour,
J'ai un texte comme celui-ci :
Ce texte est saisi par l'utilisateur avec FCKEditor. Lorsqu'il sélectionne une partie du texte et lui applique le style "dscg" , cela encapsule le texte sélectionné entre les balises <div class="dscg"> et </div>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <div class="dscg"> <p>CRÉATION D’ENTREPRISE</p> <div class="encadre-dossier">• L’Abécédaire de la décision pour créer son entreprise <br /> • Créer, un acte accessible à tous <br /> • Comment former davantage d’entrepreneurs en France ? <br /> • Changer de statut social <br /> • Envisager une augmentation de capital dans une SARL</div> <p> </p> <div class="encadre-dossier"><span class="soustitre-dossier">L’ABÉCÉDAIRE DE LA DÉCISION POUR CRÉER SON ENTREPRISE </span><br /> Avant d’être une série d’actes techniques et administratifs, la création d’entreprise est d’abord un choix de vie qui engage l’individu dans l’intégralité de sa personnalité mais aussi sa famille et ses biens. Elle suppose au départ une formidable envie d’oser, couplée à un fort esprit de responsabilité. Cette aventure requiert une bonne dose de courage pour aller surfer sur les innombrables vagues de contraintes et d’écueils sociaux, économiques, administratifs, fiscaux, financiers, parsemant la trajectoire de tout futur dirigeant. Ce dossier n’est pas un guide technique mais seulement un premier «poteau indicateur» destiné à s’orienter dans le vaste espace entrepreneunarial.</div> <p> A comme Aides financières</p> <p> </p> <p>Aides financières : Il existe une grande diversité d’aides financières. Chaque région dispose de son propre dispositif sachant que par principe : <br /> • Les aides n’arrivent souvent que plusieurs mois après la création. <br /> • Il faut être capable de s’en passer, voire de fonctionner sans elle. <br /> • Elles ne doivent représenter qu’une partie infime du plan de financement.</p> <p> </p> </div>
Et je souhaite récupérer le texte contenu entre <div class="dscg"></div>
Pour l'instant j'y arrive avec ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //$doTexte = le texte récupéré en $_POST via le formulaire de saisie preg_match_all('#<div class="dscg">(.*[<div .*?</div>]*)</div>#s', $doTexte, $m); //$x_doResume = partie du texte à récupérer puis envoyer à BDD $x_doResume = mysql_real_escape_string($m[1][0]);
Le problème que je rencontre :
Si l'utilisateur s'embrouille les pinceaux avec les styles ou les formats (pour ceux qui connaissent FCKEditor ...), il se peut que certaines balises <div> se chevauchent ou soient incohérentes. On peut finalement arriver à un texte comme ceci :
J'ai donc ici une balise ouvrante <div> en trop.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <div class="dscg" // // du texte // <div class="encadre-dossier"> // autre texte </div> // autre texte <div> // autre texte </div>
Là, ma Regex ne fonctionne plus correctement.
Le but de cette opération :
Je précise que le texte devant être extrait sera affiché gratuitement, le texte entier sur abonnement.
Afin que l'administrateur saisisse et formate le texte en une seule fois sans avoir à re saisir et reformater dans un autre champ le contenu gratuit, il selectionne la portion de code et lui applique le style "dscg" (ce qui crée en fait les balises <div class="dscg"></div>)
Avez vous une soluce pour traiter la récursivité des balises <div> (même en cas de chevauchement) ?
Ma regex est-elle correcte ?
Merci à tous.
Partager