|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : octobre 2006 Messages : 127 ![]() |
Bonjour à tous ,
j'aimerais vérifier qu'une information est saisie sous la forme: x°y'z" et j'ai utiliser ceci: preg_match (/(\d+)°(\d+)\'(\d+)\"/, $latitude), mais ça signale une erreur de syntaxe: Parse error: parse error, unexpected '/', expecting ')' une idée. merçi d'avance pour votre aide |
|
|
00
|
|
|
#2 | |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Citation:
Code :
preg_match ("/(\d+)°(\d+)\'(\d+)\"/", $latitude) |
|
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : octobre 2006 Messages : 127 ![]() |
je viens d'ajouter les 2 guillemets comme tu m'as dit, donc j'ai
Code :
preg_match ("/(\d+)°(\d+)\'(\d+)\"/", $latitude) l'erreur actuel est: Parse error: parse error, unexpected '\"', expecting ',' or ';' Là je ne vois pas l'erreur, une idée? |
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Inscription : octobre 2006 Messages : 127 ![]() |
La syntaxe ça passe, mais quand je saisie les données correctes, la vérification est fausse.
|
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : octobre 2006 Messages : 127 ![]() |
Quand je saisie une bonne donnée et que j'essaie d'afficher à l'écran ça me donne par exemple ceci avec un echo :
2°22\'3\" alors que j'ai saisie 2°22'3". |
|
|
00
|
|
|
#6 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
L'apostrophe figurant dans le masque n'a pas besoin d'être échappée a priori.
Si vos données proviennent d'un formulaire, les antislashs supplémentaires sont surement le fruit de la fonctionnalité magic_quotes_gpc auquel cas la fonction stripslashes sera nécessaire avant sur ces mêmes données. |
|
|
00
|
|
|
#7 |
|
Membre à l'essai
![]() Inscription : octobre 2006 Messages : 127 ![]() |
salut julp,
la fonctionne stripslashes me permet d'afficher la chaine correctement(merçi pour l'info). mon problème maintenant est que preg_match retourne faux même quand je saisie une chaine correcte(genre 45°125'12"). Est-ce que mon pattern aurait des problèmes? |
|
|
00
|
|
|
#8 | |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Citation:
|
|
|
|
00
|
|
|
#9 |
|
Membre à l'essai
![]() Inscription : octobre 2006 Messages : 127 ![]() |
j'ai enlevé l'anti-slash sur l'apostrophe, mais jusque là lorsque je saisie 23°45'356", ça me renvoie toujours false.
|
|
|
00
|
|
|
#10 | |||
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#11 |
|
Membre à l'essai
![]() Inscription : octobre 2006 Messages : 127 ![]() |
si j'initialise ma chaine avec une constante comme tu dis, ça fonctionne, mais cette chaine, je dois la récupérer avec $latitude = $_POST[$field],
et c'est là où ça ne fonctionne pas quand j'appelle preg_match sur $latitude. En appelant la fonctionne stripslashes et en faisant echo j'ai par exemple 25°45'123". je sèche |
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
remplaces "echo" par var_dump($_POST[$field]) pour bien voir le contenu de ta chaine (y compris les espaces, les caractères html etc).
|
|
|
00
|
|
|
#13 |
|
Membre à l'essai
![]() Inscription : octobre 2006 Messages : 127 ![]() |
j'obtiens ceci en faisant var_dump($_POST[$field]):
string(13) "25°45\'123\"" |
|
|
00
|
|
|
#14 | |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Citation:
Code :
$latitude = stripslashes($_POST[$field]); |
|
|
|
00
|
|
|
#15 |
|
Membre à l'essai
![]() Inscription : octobre 2006 Messages : 127 ![]() |
c'est ce que j'avais fait comme je t'expliquais:
puisque j'avais dit que j'obtenais 25°45'123" en appliquant stripslahes; ce qui est différent de la constante 25°45'123\"(qui "matches" bien le pattern). donc stripslahes($_POST[$field]) me renvoie 25°45'123" qui ne "matches" pas le pattern. |
|
|
00
|
|
|
#16 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
A ce stade, donnez nous votre code (un code minimal) et nous testerons. Ce sera plus simple je pense.
|
|
|
00
|
|
|
#17 |
|
Membre à l'essai
![]() Inscription : octobre 2006 Messages : 127 ![]() |
Quand j'affiche le code source via le browser j'obtiens:
longitude = 25°45'123" Je pense que c'est le caractère spécial qui pose problème. comment le retirer? |
|
|
00
|
|
|
#18 | ||
|
Membre à l'essai
![]() Inscription : octobre 2006 Messages : 127 ![]() |
voiçi une partie de mon code, regarder juste $local_longitude.
Code :
|
||
|
|
00
|
|
|
#19 |
|
Membre à l'essai
![]() Inscription : octobre 2006 Messages : 127 ![]() |
j'ai du utilisé la fonction utf8_decode sur ma variable pour résoudre le problème.
Merçi pour vos interventions qui m'ont bcp aidé |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com