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 13/11/2011, 23h29   #1
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Par défaut supprimer des caracteres illegaux

Bonjour,
Curieusement je sais contrôler si une expression est alphanumerique de 4 a 32 caracteres par exemple.

Code :
1
2
3
4
5
6
 
if( ereg('^[[:alnum:]_-]{4,32}$', $MaSaisie) )
{
    echo 'c est parfait';
}
else {    echo 'tou faux ...';}
Mais ce que je veux faire c'est accepter la chaine de caractere envoyée (il sagit d'un nom de fichier) mais d'en supprimer tout caractére non alphanumérique par "" (rien donc même pas un espace) .
Et escusez moi, je voudrais accepter les "-" et "_"

Je sais que vous allez trouver cela enfantin mais bon
Merci d'avance.
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2011, 23h36   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
un preg_replace va suffir
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/11/2011, 01h12   #3
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Merci a toi pour ta réponse,
J'ais essayée d'adapter mon expression a ta syntaxe mais cela me sort une erreur
Code :
1
2
3
4
5
6
 
<?php
$MaSaisie="hkqjsdqsdh  qksdh--__!<<>$@ brun";
$lui= preg_replace('^[[:alnum:]_-]{4,32}$', '',$MaSaisie );
echo $lui;
?>
Peux tu m'aider, j'ais un peut honte ...
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 14/11/2011, 09h51   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
les ereg sont obsolètes, la c'est donc en preg et comme le dit la doc y'a quelque différence surtout au niveau des délimiteurs (l'erreur etant "No ending delimiter")

donc

Code :
1
2
3
$str = 'hkqjsdqsdh  qksdh--__!<<>$@ brun';
$lui = preg_replace('/[^\w-]/', '', $str);
echo $lui;
mais faut le faire en 2 coup (nettoyage et vérification)
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/11/2011, 10h06   #5
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Pffffff tu va étre a moitié fier de ton éléve
Il me reste le "!" mais c'est peut-étre normal ?
Ton avis
Code :
1
2
3
4
5
6
7
 
<?php
$MaSaisie="hkqjsdqsdh  qksdh--__!<<>$@ brun";
$lui = preg_replace('`([^\w\s?!;_\-]+)`iS', '', $MaSaisie); 
echo $lui;
// me donnes  hkqjsdqsdh qksdh--__! brun
?>
J AIS EDITE SANS AVOIR VU TON MESSAGE,
Merci !

JE REEDITES
Curieux que deux expressions donnent le même résultat
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 10h25   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
oula ne surtout pas mettre de ` en séparateur, pour ne pas avoir garder les / ?
l'expression est inversé, donc [^\w-] c'est tout wue qui n'est pas alphanumérique et _ et - (donc pas besoin de rajouter les autres), pourquoi avoir rajouter les option i et S (ça sent le copier coller)
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 10h47   #7
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Super !! je mets résolu !
Quand au copié collé oui il fallait bien que je fouines partout, n'ayant pas vraiment le temps d'apprendre tout bêtement la syntaxe et écrire moi-même
Mais ça me manque souvent, et je le ferais un jour ...

Merci encore
Christele
christele_r 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 09h30.


 
 
 
 
Partenaires

Hébergement Web