Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
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 17/06/2011, 08h37   #1
Futur Membre du Club
 
Inscription : juin 2005
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 44
Points : 16
Points : 16
Par défaut Supprimer plusieurs caractères en une ligne de code

Bonjour à tous,

je cherche si une fonction spéciale existe en PHP mais je ne trouve pas, peut-être la connaissez-vous ?

Lorsque je veux supprimer plusieurs caractères d'une chaine je fais :

Code :
1
2
3
$chaine = str_replace('*','',$chaine);
$chaine = str_replace('?','',$chaine);
$chaine = str_replace('[','',$chaine);
etc... bref plein de lignes de codes.

Existe-t-il une astuce / fonction pour supprimer directement plusieurs caractères d'une chaine ?

Merci
gianni17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 08h48   #2
Membre du Club
 
Avatar de MinDBuSteR
 
Homme
Développeur informatique
Inscription : juin 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2011
Messages : 35
Points : 44
Points : 44
Bonjour,

Le mieux est de placer les champs que tu souhaite modifier dans un array :

Code :
1
2
3
4
5
6
7
8
9
10
 <?php
$chaine = "On enlève * ? [";
echo $chaine."<br />";
$remplacements = array('*' => '',
'?' => '',
'[' => '',
'On enlève' => 'On a enlevé' );
$chaine = strtr($chaine, $remplacements);
echo $chaine;
?>
Personnellement j'utilise la fonction strtr().

Bien à toi
MinDBuSteR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 09h01   #3
Futur Membre du Club
 
Inscription : juin 2005
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 44
Points : 16
Points : 16
Citation:
Envoyé par MinDBuSteR Voir le message
Le mieux est de placer les champs que tu souhaite modifier dans un array
Bonjour,

le but était évidement était de gagné du temps car écrire un array est long, je cherchais un truc du genre :
Code :
Delete_char($chaine,'/*-+.;:/()[]#"');
Genre une ligne de code, 10 sec. à écrire et hop je continue mon applic

Citation:
Envoyé par MinDBuSteR Voir le message
Personnellement j'utilise la fonction strtr().
Le prob de cette fonction est qu'elle permet de remplacer, je pense pas qu'on sache supprimer des caractères avec.

Enfin soit, je vais me créer une fonction Delete_char qui me fera gagner du temps
gianni17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 09h07   #4
Futur Membre du Club
 
Inscription : juin 2005
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 44
Points : 16
Points : 16
Code :
1
2
3
4
5
function Delete_char(&$chaine,$char)
{
	$taille = strlen($char);
	for($i = 0; $i < $taille; $i++) $chaine = str_replace($char{$i},'',$chaine);
}
voilà, si ça intéresse quelqu'un

un code propre, 2 ligne de code
gianni17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 11h01   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par gianni17 Voir le message
Code :
1
2
3
4
5
function Delete_char(&$chaine,$char)
{
	$taille = strlen($char);
	for($i = 0; $i < $taille; $i++) $chaine = str_replace($char{$i},'',$chaine);
}
voilà, si ça intéresse quelqu'un

un code propre, 2 ligne de code
ne marche pas avec de l'utf8
__________________
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 19h24.


 
 
 
 
Partenaires

Hébergement Web