Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/07/2011, 09h28   #1
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Par défaut supprimer des caractères (regexp)

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 : en
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 09h45   #2
Membre éprouvé
 
Homme Gaetan
Webmaster
Inscription : janvier 2007
Messages : 386
Détails du profil
Informations personnelles :
Nom : Homme Gaetan
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : Biens de consommation

Informations forums :
Inscription : janvier 2007
Messages : 386
Points : 441
Points : 441
Envoyer un message via MSN à Gaetan_
Bonjour,

S'il s'agit de retirer les balises HTML utilise la fonction strip_tags.

Bonne journée
Gaetan_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 09h47   #3
Membre éclairé
 
Avatar de Nowwis
 
Homme
Développeur Web
Inscription : juin 2009
Messages : 363
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2009
Messages : 363
Points : 365
Points : 365
Bonjour,

une fonction PHP existe déjà pour ce genre de chose :


Code :
1
2
3
4
 
<?php 
$texte = <p>Coucou</p>;
$texte_formate = strip_tags($texte); // Donne "Coucou"
Enjoy
Nowwis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 10h59   #4
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
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>
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 11h22   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
Citation:
Envoyé par laurentSc Voir le message
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>
moi ça donne bien test strip_tags
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 11h28   #6
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 776
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 776
Points : 2 340
Points : 2 340
Problème de version ?
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 16h58   #7
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Finalement, le strip_tags marche bien, mais je me suis aperçu que ça vient un peu plus loin de la ligne suivante :
Code :
$texte=str_replace(array("\r", "\n"), array('', '<br>'), $texte);
Si je la commente, il n'y a plus de <br>, mais ça m'affiche cela :
Citation:
rn votre textern
Quelle est donc la solution ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 17h01   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
quel est ton $texte a la base ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 17h24   #9
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
si ton texte vient d'un textarea (avec des "retour charriot", ...) :
Code :
1
2
3
4
5
<?php
$texte_formate = strip_tags(nl2br($texte));
// et supprimer :
// $texte=str_replace(array("\r", "\n"), array('', '<br>'), $texte);
?>
PS : on écrit <br /> !
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 17h36   #10
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
c'est une chaîne récupérée avec ckeditor (donc vient bien d'un textarea), mais si j'aplique ton truc, jreaux62 :
Code :
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/>
ça donne
Citation:
rn votre textern
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 17h39   #11
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
ça donne quoi :

Code :
1
2
$texte = $_POST['texte'];
var_dump(strip_tags($texte));
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 19h04   #12
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
var_dump :string(16) " votre texte "

mais y a quand même des rn...
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 19h15   #13
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Citation:
si ton texte vient d'un textarea (avec des "retour charriot", ...) :
J'oubliais : ça rajoute des <br/> , même si l'utilisateur ne saisit pas de retour chariot...
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 19h40   #14
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
Citation:
Envoyé par laurentSc Voir le message
var_dump :string(16) " votre texte "

mais y a quand même des rn...
ou ca ? t'as juste les retour mais invisible y'a pas de r ou de n visible
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 19h51   #15
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
oui, ils ne sont pas visibles sur ce var_dump, mais en fait, les textes, je les stocke dans MySQL :
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).'\')';
ES :
Code :
1
2
3
4
5
function ES($truc)
{
$truc=mysql_real_escape_string($truc);
return $truc;
}
pour pouvoir afficher ces textes ultérieurement, et quand je les relis :
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>"; 
...
}
ça me met les rn...
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 20h22   #16
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
des lettres ou des sauts lignes ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 20h58   #17
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
des lettres, comme ceci :
Citation:
rn votre textern
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 21h45   #18
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
Citation:
Envoyé par laurentSc Voir le message
des lettres, comme ceci :
et dans ta base ? t'es sur que t'as pas d'autres traitements qui trainent ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 23h03   #19
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Pour ma base, j'avais fait en PHP une interface qui en affiche le contenu :
Citation:
76 rn votre textern avis_rech laurents 2011-07-27-23:00 laurents 1
votre texte
Les champs de la base étant les suivants :
Citation:
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
et entre le insert et l'affichage, y a rien d'anormal. Et le champ "texteavantmodif", lui, subit le traitement
Code :
$texteavantmodif=str_replace(array("\r", "\n"), array('', '<br>'), $texteavantmodif);
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 23h06   #20
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h09.


 
 
 
 
Partenaires

Hébergement Web