Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
661 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP comment comparer des chiffre a 2 point (version)

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP comment comparer des chiffre a 2 point (version)

n°2127432
hyptnos
GT : Gui iom
Posté le 21-02-2012 à 09:18:17  profilanswer
 

Bonjour à tous.
 
Surement un truc tout con comme d'hab mais je seche depuis un moment la donc j'appel a l'aide.
j'ai besoin de faire des tests de supériorité de version de navigateur. Je recupère bien toute mes infos dans une variable du genre
 
$navVersion
 
par exemple ma version de Firefox est la 10.0.2 donc $navVersion = 10.0.2
 
et je veux tester si le navigateur client (donc en l'occurence le mien) est supérieur a 3.5.2
 
or si je fais  

Code :
  1. if($navVersion > '3.5.2'){


 
j'ai l'impression que php s'y perd a cause des points.
 
une idée ? simple et rapide a mettre en place car l'application est déjà fonctionnelle faut juste que je modifie cette action la.
 
merci d'avance

mood
Publicité
Posté le 21-02-2012 à 09:18:17  profilanswer
 

n°2127433
olivthill
Posté le 21-02-2012 à 10:00:32  profilanswer
 

Oui, quand on compare des chaines, "10" est inférieur à "3".
Donc il faut comparer des nombres.
 
Une conversion en nombre se fait en à peine deux lignes :

$tmp = explode(".", $navVersion);
$v = $tmp[0] * 100000 + $tmp[1] * 1000 + $tmp[2];


N.B. Je suppose que le troisième nombre ne dépasse pas 999 et que le deuxième ne déapasse pas 99.
 
Edit : + au lieu de *


Message édité par olivthill le 21-02-2012 à 10:53:00
n°2127445
hyptnos
GT : Gui iom
Posté le 21-02-2012 à 10:35:00  profilanswer
 

Merci beaucoup :)
cela fonctionne parfaitement maintenant je comprenais pas pourquoi et tu m'apprend donc par la meme occasion que 10 est inférieur à 3 pour des chaines de caractère :)
 
Je pense que tu t'es tromper dans ton code

Code :
  1. $v = $tmp[0] * 100000 + $tmp[1] * 1000 * $tmp[2];


 
mais plutot additionné $tmp[2] au lieu de le multiplier non ?
 

Code :
  1. $v = $tmp[0] * 100000 + $tmp[1] * 1000 + $tmp[2];


 
c'est ce que j'ai fait et ca marche comme ca  
 
Encore merci


Message édité par hyptnos le 21-02-2012 à 10:35:20
n°2127454
olivthill
Posté le 21-02-2012 à 10:52:13  profilanswer
 

Oui, désolé.

n°2127476
MEI
|DarthPingoo(tm)|
Posté le 21-02-2012 à 11:32:20  profilanswer
 

methode version_compare() : http://php.net/manual/fr/function.version-compare.php (certes ça marche que sur 3 chiffres...)
 

Code :
  1. if (version_compare($navVersion, '3.5.2', '>') {
  2.    //
  3. }


---------------
| AMD Ryzen 7 3700X 8C/16T @ 3.6GHz - 32GB DDR4-3600 16-18-18 1T - AMD Radeon RX 5700 XT 8GB @ 2010MHz/14Gbps |
n°2127482
hyptnos
GT : Gui iom
Posté le 21-02-2012 à 11:36:43  profilanswer
 

Bon à savoir quand même merci :)
et oui 3 chiffre vu que c'est spécialement conçu pour les versions de PHP.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP comment comparer des chiffre a 2 point (version)

 

Sujets relatifs
[PHP/MYSQL] Historique de facture[PHP/JS/Flash] Utiliser SWFUpload...
[MySQL] Requête pour comparer 11 jours avec l'année précédentePHP->C# Besoin de conversion svp
somme d'heures en PHPQuestion conne... Le point en Javascript
Extraction Liste PhP - Excelcomparer des lignes sur macro excel
Comment lire la version d'Oracle ClientCompte à rebour en PHP (if/else) pour masquer lien
Plus de sujets relatifs à : PHP comment comparer des chiffre a 2 point (version)


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR