[PHP] <br /> et sauts de lignes
Résolu
ekra
Messages postés
1870
Date d'inscription
Statut
Membre
Dernière intervention
-
ekra Messages postés 1870 Date d'inscription Statut Membre Dernière intervention -
ekra Messages postés 1870 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Une fois de plus, je sollicite votre aide !
Je vous explique la situation :
Quelqu'un (un visiteur par exemple) rentre du texte dans un formulaire.
Mon but : remplacer 2 sauts de ligne par un nouveau paragraphe.
Dans ma base de donnée, on stockera "$contenu" (le texte est donc maintenant sous forme HTML)
Le problème c'est que le "nl2br()" (remplacement de "entré" par <br />) remplace deux saut de ligne par :
Donc les deux <br /> ne sont pas collés ! Du coup il mon fonction ne les remplace pas.
Pourriez-vous m'aider ?
Merci d'avance !
Une fois de plus, je sollicite votre aide !
Je vous explique la situation :
Quelqu'un (un visiteur par exemple) rentre du texte dans un formulaire.
Mon but : remplacer 2 sauts de ligne par un nouveau paragraphe.
$balises1 = array("<br /><br />"); $balises2 = array("</p><p>"); $contenu='<p>'.str_replace($balises1, $balises2, nl2br(htmlentities($contenu,ENT_QUOTES,"utf-8"))).'</p>';
Dans ma base de donnée, on stockera "$contenu" (le texte est donc maintenant sous forme HTML)
Le problème c'est que le "nl2br()" (remplacement de "entré" par <br />) remplace deux saut de ligne par :
blablabla<br /> <br /> blablabla ligne après 2 "entré"
Donc les deux <br /> ne sont pas collés ! Du coup il mon fonction ne les remplace pas.
Pourriez-vous m'aider ?
Merci d'avance !
A voir également:
- [PHP] <br /> et sauts de lignes
- Partage de photos en ligne - Guide
- Saut de ligne html sans <br - Forum HTML
- Balise br ✓ - Forum CSS
- <Br/> ✓ - Forum HTML
- Br html - Forum CSS
4 réponses
Peut être en mettant une fin de ligne dans $balises1.
Ou
M'enfin, peut-être que je dis une connerie..
$balises1 = array("<br />\r<br />");
Ou
$balises1 = array("\n\r\n\r");
M'enfin, peut-être que je dis une connerie..
Bonjour,
D'abord merci de ta réponse, mais malheuresement, ceci n'a pas résolu mon problème...
J'ai essayé "<br />\n<br />" et "<br />\r<br />" :(
voici le code enregistré sur la base de données :
Si vous avez d'autres idées, merci !
D'abord merci de ta réponse, mais malheuresement, ceci n'a pas résolu mon problème...
J'ai essayé "<br />\n<br />" et "<br />\r<br />" :(
voici le code enregistré sur la base de données :
<p>Premier paragraphe. Phrase qui sert à rien.<br /> <br /> Deuxième paragraphe.<br /> <br /> Troisième.</p>
Si vous avez d'autres idées, merci !
Bjr
Et avec une expression régulière ?
par ex
Et avec une expression régulière ?
par ex
<html> <body> <?php $pattern = '/<br\s*\/>[\n\s]*<br\s*\/>+/si'; $replacement = '</p><p>'; $contenu ="<p>Premier paragraphe. Phrase qui sert à rien.<br />\n". "<br/>". "Deuxième paragraphe.<br />". "<br />". "Troisième.</p>"; echo preg_replace($pattern, $replacement, $contenu); ?> </body> </html>
Bonjour,
Merci ! Ca marche au poil !
Sinon, en ce qui concerne les chaînes du type "pattern" que tu m'as donné (comme '/<br\s*\/>[\n\s]*<br\s*\/>+/si') ou pourrais-je savoir comment en faire d'autres ?
J'ai cru reconnaître :
\s* : autant d'espaces qu'on veut
[jkjk]*: autant de caractères qu'on veut contenus dans les crochets
après
+/si : aucune idée....
/ (d'introduction): pareil
Ou pourrais-je trouver de l'aide pour ces "tags".
Merci :)
Merci ! Ca marche au poil !
Sinon, en ce qui concerne les chaînes du type "pattern" que tu m'as donné (comme '/<br\s*\/>[\n\s]*<br\s*\/>+/si') ou pourrais-je savoir comment en faire d'autres ?
J'ai cru reconnaître :
\s* : autant d'espaces qu'on veut
[jkjk]*: autant de caractères qu'on veut contenus dans les crochets
après
+/si : aucune idée....
/ (d'introduction): pareil
Ou pourrais-je trouver de l'aide pour ces "tags".
Merci :)
Pardon de te déranger une fois de plus Php.
J'ai lu pas mal de documentation sur les expression régulière (vu que ça à l'air bien pratique), mais il y a certaines choses que je voudrais que tu m'éclaires :
- je ne comprends pas le sens de "+" ici. Normalement il veut dire "j'en veux au moins une fois", mais c'est le ">" précédent qui doit y être au moins une fois ? Si oui pourquoi ne pas l'avoir mis sur les autres ">" ?
- Je n'ai pas trouvé la signification de "/si".
En tout cas, merci déjà de m'avoir aidé !
J'ai lu pas mal de documentation sur les expression régulière (vu que ça à l'air bien pratique), mais il y a certaines choses que je voudrais que tu m'éclaires :
/<br\s*\/>[\n\s]*<br\s*\/>+/si
- je ne comprends pas le sens de "+" ici. Normalement il veut dire "j'en veux au moins une fois", mais c'est le ">" précédent qui doit y être au moins une fois ? Si oui pourquoi ne pas l'avoir mis sur les autres ">" ?
- Je n'ai pas trouvé la signification de "/si".
En tout cas, merci déjà de m'avoir aidé !