Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
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 09/07/2007, 17h54   #1
Invité de passage
 
Inscription : avril 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 19
Points : 3
Points : 3
Par défaut les "+" et le "-"

bonjour

J'ai une commande qui n'autorise que les chifre, les letres et le caractaires "._#/". la voici :
Code :
$nav = eregi_replace('[^a-z0-9._#/]', '', $_GET['nav']);
J'aimerais qu'elle laisse aussi passer les signe "+" et "-".

Comment faire ?
LEIôPAR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 17h56   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
je dirai qu'il suffit que tu rajoutes les deux nouveaux caractères dans ton pattern non?
Code :
$nav = eregi_replace('[^a-z0-9._#/+-]', '', $_GET['nav']);
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 18h19   #3
Invité de passage
 
Inscription : avril 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 19
Points : 3
Points : 3
ben oui, c'est ce que j'ai pensé aussi... sauf que non, ça ne marche pas !!!
(enfin pour le "-" si mais pas pour le "+")
LEIôPAR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 19h16   #4
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Un + dans une url correspond à un espace.
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 19h27   #5
Invité de passage
 
Inscription : avril 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 19
Points : 3
Points : 3
Citation:
Envoyé par Xunil
Un + dans une url correspond à un espace.
Hum?
LEIôPAR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 19h38   #6
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Pourquoi hum ?
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 19h48   #7
Invité de passage
 
Inscription : avril 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 19
Points : 3
Points : 3
Je n'ai pas compris le sens de ta réponse !
LEIôPAR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 19h58   #8
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Quand tu as des + dans une valeur GET d'une url le + est un espace.

Dans http://www.site.org?nav=10+20

Un echo de $_GET['nav'] donnera "10 20" et pas "10+20"
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 20h03   #9
Invité de passage
 
Inscription : avril 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 19
Points : 3
Points : 3
Arg !!!
Plus de la boitier des fichiers que je doit traiter on un signe "+".

Ya une astuce ? Des apostrophe ? simple ? double ?
LEIôPAR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 20h22   #10
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Un urlencode avant de passer ta valeur en GET devrait faire l'affaire.

Un urldecode pour la récupérer ensuite.
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 20h28   #11
Invité de passage
 
Inscription : avril 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 19
Points : 3
Points : 3
vue... je vais cresser aussi par là...

question subsidiaire :
comment isolerais tu la chaine qi se trouve entre la chaine "nav=" et le premier "&" suivant (s'il y en a un) dans cette chaine la :
"...&nav=niv+1.dwg&co=..."
LEIôPAR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 20h42   #12
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Je dirais avec une regex
Code :
1
2
preg_match('#(?=<nav=)[^&]+#', $chaine, $f);
echo $f[0];
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 20h49   #13
Invité de passage
 
Inscription : avril 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 19
Points : 3
Points : 3
si mon url est :
http://localhost/trans_plan/?nav=AFF1

ce code :
preg_match('#(?=<nav=)[^&]+#', $_SERVER['QUERY_STRING'], $f);
$nav=$f[0];

me retourne l'erreur :
Notice: Undefined offset: 0 in ...\requette.php on line 13
LEIôPAR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 20h54   #14
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Ah oui, j'ai inversé le < et le =

Code :
preg_match('#(?<=nav=)[^&]+#', $_SERVER['QUERY_STRING'], $f);
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 21h03   #15
Invité de passage
 
Inscription : avril 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 19
Points : 3
Points : 3
Je n'aurais que deux mot pour décrire l'aide que tu m'as apporter :
GE NIAL l

Merci pour ta patience !
Maintenant ca marche !

Bonne soirée (moi je vais mieu dormir !)

LEIôPAR
LEIôPAR 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 09h19.


 
 
 
 
Partenaires

Hébergement Web