|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 2 ![]() |
Bonjour,
Après plus d'une heure de recherche, je me résoud à demander de l'aide... J'utilise la fonction mktime dans quelques uns de mes scripts. Dans un cas, cela crée systématiquement une erreur sans que j'arrive à comprendre la raison. Le code est vraiment simple (j'ai ajouté le numéros de ligne entre parenthése): /* Dans DateNaisanceBrute se trouve le string "19.11.1998" */ (15) $DateArray = explode ( "." , $DateNaissanceBrute); (16) $Day = $DateArray[0]; (17) $Month = $DateArray[1]; (18) $Year = $DateArray[2]; (19) echo "Day: " . $Day . "\n"; (20) echo "Month: " . $Month . "\n"; (21) echo "Year: " . $Year . "\n"; (22) $test = mktime(0,*0,*0,*$Month,*$Day, $Year, -1); Si j'exécute le script ci-dessus en commentant la ligne 22, j'obtient l'affichage attendu: Day: 19 Month: 11 Year: 1998 Si j'exécute le script avec la ligne 22, j'obtient: Parse error: syntax error, unexpected T_VARIABLE in /homez.41/jeunessc/www/verif_inscriptions_process.php on line 22 Si je remplace la ligne 22 par la ligne suivante: $test = mktime(0, 0, 0, 11, 19, 1998, -1); ça passe sans erreur... Est-ce que quelqu'un arrive à expliquer un tel comportement ? Toute hypothèse est la bienvenue: je ne sais plus quoi faire ou quoi tester. Salutations et merci pour toute aide. |
|
|
00
|
|
|
#2 | |
|
Membre expérimenté
![]() |
Salut,
Je sait pas si l'erreur vient de la mais pourquoi tu met des * devant les variables de ton mktime ? Citation:
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 2 ![]() |
Bonjour,
En effet, dans mon message, il y a des '*'... je ne m'en suis pas rendu compte, ils sont apparus lors du copier coller. Bien sûr ceux-ci n'apparaissent pas dans mon fichier texte original. Du coup, j'ai creusé un peu et compris le problème: Mon éditeur texte (TextWrangler) m'indique que mon fichier est en Western MacOS Roman alors qu'en pratique il est en UTF-8 (ou UTF-16, je ne sais pas). Chaque caractère prend deux bytes. Si je dump en hexa, on voit des caractères 0xA0. Lors du copier-coller, une partie de ceux-ci sont devenus des étoiles... Enfin bon... la solution est bien sûr de fore le fichier en mode ASCII pour garder un caractère par octet :-). Ensuite, tout va mieux. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com