Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 27/09/2011, 00h41   #1
Invité régulier
 
Homme Guillaume
Développeur multimédia
Inscription : août 2005
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur multimédia
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2005
Messages : 8
Points : 7
Points : 7
Par défaut Condition "if" : résultats opposés sur deux serveurs différents

Hello,

J'en fais appel à vous pour m'aider à résoudre un problème qui me surprend réellement.

Voici un code pour tester une condition au milieu d'un script.

affiche ceci :
Code :
array(6) { [0]=> string(11) "REMOMEIX-88" [1]=> string(1) "P" [2]=> string(4) "GrDF" [3]=> string(2) " " [4]=> string(9) "ZONE NORD" [5]=> string(1) "H" }
Suivi de ceci :
Code :
var_dump($town[3] != 'GrDF' && $town[3] != 'RESEAU GDS' && $town[3] != '');
Et mon problème survient.
Sur une configuration en local (PHP 5.3.5), ce dernier var_dump me retourne FALSE.
Sur une autre configuration (serveur mutualisé chez OVH avec PHP 5.3.8), cela me retourne TRUE.

Je ne sais plus où donner de la tête.
Serais-je en manque de sommeil ? Quelque chose m'échappe ? Et chez vous, quel est le résultat de ce code ?
versgui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 00h52   #2
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 329
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 1 329
Points : 1 657
Points : 1 657
Tu peux essayer de déterminer sur laquelle des 3 conditions ça passe ?
$town[3] != 'GrDF'
$town[3] != 'RESEAU GDS'
$town[3] != ''

Et bizarrement :
[3]=> string(2) " "

"string(2)" alors qu'il n'y a qu'un seul caractère...
à moins que ce soit un caractère foireux qui passe dans le != ''
__________________
Zend Certified Engineer PHP 5.3

« Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 15h58   #3
Invité régulier
 
Homme Guillaume
Développeur multimédia
Inscription : août 2005
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur multimédia
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2005
Messages : 8
Points : 7
Points : 7
Merci, ta réponse m'a mit sur la voie et le problème vient de la colonne 3.

En local, ce champ à 0 en longueur
[3]=> string(0) ""

et chez OVH, ce champ à 2 en longueur, avec deux espaces.
[3]=> string(2) " "

L'ajout d'un trim() résout complètement le problème.

Cette valeur est tirée d'un parsing d'un fichier CSV, il est possible que la différence de l'environnement soit en cause (Windows en local, Linux chez OVH).

Bref, mon problème est résolu. Merci !
versgui 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 22h44.


 
 
 
 
Partenaires

Hébergement Web