Bonjour,
je voudrais supprimer des caractères d'une chaîne de caractères ; je crois que ça se fait avec une regexp, mais je ne sais pas comment ; ce que je voudrais, c'est transformer une chaîne du type :enCode:<p><br>string</p><br>
Code:string
Version imprimable
Bonjour,
je voudrais supprimer des caractères d'une chaîne de caractères ; je crois que ça se fait avec une regexp, mais je ne sais pas comment ; ce que je voudrais, c'est transformer une chaîne du type :enCode:<p><br>string</p><br>
Code:string
Bonjour,
S'il s'agit de retirer les balises HTML utilise la fonction strip_tags.
Bonne journée
Bonjour,
une fonction PHP existe déjà pour ce genre de chose :
Code:strip_tags
Enjoy ;)Code:
1
2
3
4 <?php $texte = <p>Coucou</p>; $texte_formate = strip_tags($texte); // Donne "Coucou"
Merci pour la réponse, mais strip_tags n'enlève pas tout : par exemple,
strip_tags("<br>test strip_tags<br>") vaut <br>test strip_tags<br>
Problème de version ?
Finalement, le strip_tags marche bien, mais je me suis aperçu que ça vient un peu plus loin de la ligne suivante :Si je la commente, il n'y a plus de <br>, mais ça m'affiche cela :Code:$texte=str_replace(array("\r", "\n"), array('', '<br>'), $texte);
Quelle est donc la solution ?Citation:
rn votre textern
quel est ton $texte a la base ?
Bonjour,
si ton texte vient d'un textarea (avec des "retour charriot", ...) :
PS : on écrit <br /> !Code:
1
2
3
4
5 <?php $texte_formate = strip_tags(nl2br($texte)); // et supprimer : // $texte=str_replace(array("\r", "\n"), array('', '<br>'), $texte); ?>
c'est une chaîne récupérée avec ckeditor (donc vient bien d'un textarea), mais si j'aplique ton truc, jreaux62 :
ça donneCode:
1
2
3
4 $texte=$_POST['texte']; $texte=strip_tags(nl2br($texte)); //$texte=str_replace(array("\r", "\n"), array('', '<br/>'), $texte); //j'ai bien écrit <br/>
:(Citation:
rn votre textern
ça donne quoi :
Code:
1
2 $texte = $_POST['texte']; var_dump(strip_tags($texte));
var_dump :string(16) " votre texte "
mais y a quand même des rn...:cry:
J'oubliais : ça rajoute des <br/> :mrgreen:, même si l'utilisateur ne saisit pas de retour chariot...Citation:
si ton texte vient d'un textarea (avec des "retour charriot", ...) :
oui, ils ne sont pas visibles sur ce var_dump, mais en fait, les textes, je les stocke dans MySQL :ES :Code:$sql= 'INSERT into `forum_telepamedia` (text, cat,auteur,date,login,texteavantmodif) VALUES (\''.ES($texteapresmodif).'\',\''.ES($_SESSION['categ']).'\',\''.ES($auteur).'\',\''.ES($date).'\',\''.ES($_COOKIE["login"]).'\',\''.ES($texteavantmodif).'\')';
pour pouvoir afficher ces textes ultérieurement, et quand je les relis :Code:
1
2
3
4
5 function ES($truc) { $truc=mysql_real_escape_string($truc); return $truc; }
ça me met les rn...Code:
1
2
3
4
5
6
7
8 $sql="select date,auteur,text from `forum_telepamedia` where cat='".$_SESSION['categ']."' order by id_forum DESC"; $result = mysql_query($sql) or die(mysql_error()); while ($ligne=mysql_fetch_array($result,MYSQL_NUM)) { ... echo "<td>".$ligne[2]."</td>"; ... }
des lettres ou des sauts lignes ?
des lettres, comme ceci :Citation:
rn votre textern
Pour ma base, j'avais fait en PHP une interface qui en affiche le contenu :Les champs de la base étant les suivants :Citation:
76 rn votre textern avis_rech laurents 2011-07-27-23:00 laurents 1
votre texte
et entre le insert et l'affichage, y a rien d'anormal. Et le champ "texteavantmodif", lui, subit le traitementCitation:
id_forum mediumint(8) unsigned NO PRI auto_increment
text text NO
cat varchar(20) YES
auteur varchar(20) NO
date varchar(20) NO
login varchar(10) YES
connecte tinyint(4) YES
texteavantmodif text NO
Code:$texteavantmodif=str_replace(array("\r", "\n"), array('', '<br>'), $texteavantmodif);
t'as pas a faire de traitement, sauf
faire un mysql_real_escape_string sur les valeurs a inséré
si tu ne veux pas des balise HTML pas besoin d'un éditeur le textarea suffis
ensuite a l'affichage tu dois faire un htmlspecialschars