comment determiner si l'on est sous environnement windows ?
17 réponses
heulman
Bonjour,
Comment déterminer à coup sûr en php si l'on est sous environnement windows
?
Je pense utiliser la constante PHP_OS mais je m'interroge sur sa fiabilité.
Windows XP me retourne WINNT.
Est-ce toutes les versions de windows retournent une valeur commençant par
WIN ?
Peut-être existe-t-il une routine standard qui serait plus fiable ?
Comment déterminer à coup sûr en php si l'on est sous environnement windows ? Je pense utiliser la constante PHP_OS mais je m'interroge sur sa fiabilité. Windows XP me retourne WINNT. Est-ce toutes les versions de windows retournent une valeur commençant par WIN ?
à lire la doc ou les remarques en ligne sur les fonctions dl ou memory_get_usage, cela semble le cas :
//If its Windows if ( substr(PHP_OS,0,3) == 'WIN') ...
on peut aussi tester les constantes DIRECTORY_SEPARATOR (/ sous Linux et sous Windows), ou PHP_SHLIB_SUFFIX (so sous linux et dll sous Win) à condition qu'elles soient définies dans la version de php.
côté fonction, php_uname('s') pourrait faire l'affaire. Elle retourne a priori les valeurs suivantes : Operating System valeur retournée Windows NT/2000/XP Windows_NT Windows 95 Windows_95 Windows 98 Windows_98 Windows Me Windows_ME
eça -- P'tit Marcel stats sur les forums modérés http://www.centrale-lyon.org/ng/
Comment déterminer à coup sûr en php si l'on est sous environnement windows ?
Je pense utiliser la constante PHP_OS mais je m'interroge sur sa fiabilité.
Windows XP me retourne WINNT.
Est-ce toutes les versions de windows retournent une valeur commençant par
WIN ?
à lire la doc ou les remarques en ligne sur les fonctions dl ou
memory_get_usage, cela semble le cas :
//If its Windows
if ( substr(PHP_OS,0,3) == 'WIN')
...
on peut aussi tester les constantes DIRECTORY_SEPARATOR (/ sous Linux et
sous Windows), ou PHP_SHLIB_SUFFIX (so sous linux et dll sous Win) à
condition qu'elles soient définies dans la version de php.
côté fonction, php_uname('s') pourrait faire l'affaire.
Elle retourne a priori les valeurs suivantes :
Operating System valeur retournée
Windows NT/2000/XP Windows_NT
Windows 95 Windows_95
Windows 98 Windows_98
Windows Me Windows_ME
eça
--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/
Comment déterminer à coup sûr en php si l'on est sous environnement windows ? Je pense utiliser la constante PHP_OS mais je m'interroge sur sa fiabilité. Windows XP me retourne WINNT. Est-ce toutes les versions de windows retournent une valeur commençant par WIN ?
à lire la doc ou les remarques en ligne sur les fonctions dl ou memory_get_usage, cela semble le cas :
//If its Windows if ( substr(PHP_OS,0,3) == 'WIN') ...
on peut aussi tester les constantes DIRECTORY_SEPARATOR (/ sous Linux et sous Windows), ou PHP_SHLIB_SUFFIX (so sous linux et dll sous Win) à condition qu'elles soient définies dans la version de php.
côté fonction, php_uname('s') pourrait faire l'affaire. Elle retourne a priori les valeurs suivantes : Operating System valeur retournée Windows NT/2000/XP Windows_NT Windows 95 Windows_95 Windows 98 Windows_98 Windows Me Windows_ME
eça -- P'tit Marcel stats sur les forums modérés http://www.centrale-lyon.org/ng/
Denis Beauregard
Le 28 Nov 2006 22:11:24 GMT, "heulman" écrivait dans fr.comp.lang.php:
Bonjour,
Comment déterminer à coup sûr en php si l'on est sous environnement windows ?
Par rapport à Unix/Linux/BSD ? Il suffit de regarder la casse. On écrit dans un fichier ABC.def une chaîne comme ALLO, puis dans abc.DEF la chaîne DRELIN. Puis on lit ABC.def et si le fichier contient DRELIN, on est dans Windows... On fait le test une fois et on relit le résultat les fois suivantes.
Ceci dit, il y a la fonction uname qui peut servir: http://ca.php.net/manual/fr/function.php-uname.php
Denis
Je pense utiliser la constante PHP_OS mais je m'interroge sur sa fiabilité. Windows XP me retourne WINNT. Est-ce toutes les versions de windows retournent une valeur commençant par WIN ?
Peut-être existe-t-il une routine standard qui serait plus fiable ?
merci, heulman
Le 28 Nov 2006 22:11:24 GMT, "heulman" <heulman@hotmail.com> écrivait
dans fr.comp.lang.php:
Bonjour,
Comment déterminer à coup sûr en php si l'on est sous environnement windows
?
Par rapport à Unix/Linux/BSD ? Il suffit de regarder la casse.
On écrit dans un fichier ABC.def une chaîne comme ALLO, puis dans
abc.DEF la chaîne DRELIN. Puis on lit ABC.def et si le fichier
contient DRELIN, on est dans Windows... On fait le test une fois
et on relit le résultat les fois suivantes.
Ceci dit, il y a la fonction uname qui peut servir:
http://ca.php.net/manual/fr/function.php-uname.php
Denis
Je pense utiliser la constante PHP_OS mais je m'interroge sur sa fiabilité.
Windows XP me retourne WINNT.
Est-ce toutes les versions de windows retournent une valeur commençant par
WIN ?
Peut-être existe-t-il une routine standard qui serait plus fiable ?
Le 28 Nov 2006 22:11:24 GMT, "heulman" écrivait dans fr.comp.lang.php:
Bonjour,
Comment déterminer à coup sûr en php si l'on est sous environnement windows ?
Par rapport à Unix/Linux/BSD ? Il suffit de regarder la casse. On écrit dans un fichier ABC.def une chaîne comme ALLO, puis dans abc.DEF la chaîne DRELIN. Puis on lit ABC.def et si le fichier contient DRELIN, on est dans Windows... On fait le test une fois et on relit le résultat les fois suivantes.
Ceci dit, il y a la fonction uname qui peut servir: http://ca.php.net/manual/fr/function.php-uname.php
Denis
Je pense utiliser la constante PHP_OS mais je m'interroge sur sa fiabilité. Windows XP me retourne WINNT. Est-ce toutes les versions de windows retournent une valeur commençant par WIN ?
Peut-être existe-t-il une routine standard qui serait plus fiable ?
merci, heulman
John GALLET
Comment déterminer à coup sûr en php si l'on est sous environnement windows ?
Est-ce que ça sert vraiment à quelque chose ? PHP est un langage portable sur de multiples OS, et à de rares fonctions près, dont on peut vérifier l'existence avec http://fr2.php.net/manual/en/function.function-exists.php ou http://fr2.php.net/manual/en/function.get-loaded-extensions.php selon le niveau auquel on veut se placer, tout script php *doit* tourner sur n'importe quel OS.
Le peu de spécifique concernant les noms de chemins doit se faire par paramètre de configuration de toutes façons (i.e. utiliser une constante ou un paramètre de configuration aisément modifiable en UN SEUL endroit du code au lieu d'être en dur partout, peu importe donc que ce soit C: ou /export/home).
Peut-être existe-t-il une routine standard qui serait plus fiable ?
Routine non, méthode de développement qui devrait être standard, oui : **Arrêtez de faire de la bidouille spécifique à tel ou tel OS et écrivez du code générique**.
a++; JG
Comment déterminer à coup sûr en php si l'on est sous environnement windows
?
Est-ce que ça sert vraiment à quelque chose ? PHP est un langage portable
sur de multiples OS, et à de rares fonctions près, dont on peut vérifier
l'existence avec http://fr2.php.net/manual/en/function.function-exists.php
ou http://fr2.php.net/manual/en/function.get-loaded-extensions.php selon
le niveau auquel on veut se placer, tout script php *doit* tourner sur
n'importe quel OS.
Le peu de spécifique concernant les noms de chemins doit se faire par
paramètre de configuration de toutes façons (i.e. utiliser une constante
ou un paramètre de configuration aisément modifiable en UN SEUL endroit du
code au lieu d'être en dur partout, peu importe donc que ce soit C: ou
/export/home).
Peut-être existe-t-il une routine standard qui serait plus fiable ?
Routine non, méthode de développement qui devrait être standard, oui :
**Arrêtez de faire de la bidouille spécifique à tel ou tel OS et
écrivez du code générique**.
Comment déterminer à coup sûr en php si l'on est sous environnement windows ?
Est-ce que ça sert vraiment à quelque chose ? PHP est un langage portable sur de multiples OS, et à de rares fonctions près, dont on peut vérifier l'existence avec http://fr2.php.net/manual/en/function.function-exists.php ou http://fr2.php.net/manual/en/function.get-loaded-extensions.php selon le niveau auquel on veut se placer, tout script php *doit* tourner sur n'importe quel OS.
Le peu de spécifique concernant les noms de chemins doit se faire par paramètre de configuration de toutes façons (i.e. utiliser une constante ou un paramètre de configuration aisément modifiable en UN SEUL endroit du code au lieu d'être en dur partout, peu importe donc que ce soit C: ou /export/home).
Peut-être existe-t-il une routine standard qui serait plus fiable ?
Routine non, méthode de développement qui devrait être standard, oui : **Arrêtez de faire de la bidouille spécifique à tel ou tel OS et écrivez du code générique**.
a++; JG
Olivier Miakinen
Comment déterminer à coup sûr en php si l'on est sous environnement windows ?
Est-ce que ça sert vraiment à quelque chose ? [...]
**Arrêtez de faire de la bidouille spécifique à tel ou tel OS et écrivez du code générique**.
Merci, John, je n'aurais pas dit mieux.
Comment déterminer à coup sûr en php si l'on est sous environnement windows
?
Est-ce que ça sert vraiment à quelque chose ? [...]
**Arrêtez de faire de la bidouille spécifique à tel ou tel OS et
écrivez du code générique**.
Comment déterminer à coup sûr en php si l'on est sous environnement windows Est-ce que ça sert vraiment à quelque chose ? [...]
**Arrêtez de faire de la bidouille spécifique à tel ou tel OS et écrivez du code générique**. Merci, John, je n'aurais pas dit mieux.
Je suis d'accord mais il y a toujours des exceptions, ne serait-ce que lorsqu'on doit traiter des fichiers en utilisant les chemins physiques.
J'ai eu le cas sur un site que j'ai du reprendre en vitesse (pas le temps de refaire tout le système) et déterminer l'OS me fut bien utile.
-- Astuces pour webmasters: http://www.crazycat.info Tchat francophone: http://www.crazy-irc.net
heulman
"John GALLET" a écrit dans le message de news:
Comment déterminer à coup sûr en php si l'on est sous environnement windows ?
Est-ce que ça sert vraiment à quelque chose ? PHP est un langage portable sur de multiples OS, et à de rares fonctions près, dont on peut vérifier l'existence avec http://fr2.php.net/manual/en/function.function-exists.php ou http://fr2.php.net/manual/en/function.get-loaded-extensions.php selon le niveau auquel on veut se placer, tout script php *doit* tourner sur n'importe quel OS.
Le peu de spécifique concernant les noms de chemins doit se faire par paramètre de configuration de toutes façons (i.e. utiliser une constante ou un paramètre de configuration aisément modifiable en UN SEUL endroit du code au lieu d'être en dur partout, peu importe donc que ce soit C: ou /export/home).
justement, à cet endroit il faut pouvoir vérifier sur quel environnement php tourne.
heulman
"John GALLET" <john.gallet@wanadoo.fr> a écrit dans le message de news:
Pine.LNX.4.44.0611290928100.26530-100000@ns2261.ovh.net...
Comment déterminer à coup sûr en php si l'on est sous environnement
windows
?
Est-ce que ça sert vraiment à quelque chose ? PHP est un langage portable
sur de multiples OS, et à de rares fonctions près, dont on peut vérifier
l'existence avec http://fr2.php.net/manual/en/function.function-exists.php
ou http://fr2.php.net/manual/en/function.get-loaded-extensions.php selon
le niveau auquel on veut se placer, tout script php *doit* tourner sur
n'importe quel OS.
Le peu de spécifique concernant les noms de chemins doit se faire par
paramètre de configuration de toutes façons (i.e. utiliser une constante
ou un paramètre de configuration aisément modifiable en UN SEUL endroit du
code au lieu d'être en dur partout, peu importe donc que ce soit C: ou
/export/home).
justement, à cet endroit il faut pouvoir vérifier sur quel environnement php
tourne.
Comment déterminer à coup sûr en php si l'on est sous environnement windows ?
Est-ce que ça sert vraiment à quelque chose ? PHP est un langage portable sur de multiples OS, et à de rares fonctions près, dont on peut vérifier l'existence avec http://fr2.php.net/manual/en/function.function-exists.php ou http://fr2.php.net/manual/en/function.get-loaded-extensions.php selon le niveau auquel on veut se placer, tout script php *doit* tourner sur n'importe quel OS.
Le peu de spécifique concernant les noms de chemins doit se faire par paramètre de configuration de toutes façons (i.e. utiliser une constante ou un paramètre de configuration aisément modifiable en UN SEUL endroit du code au lieu d'être en dur partout, peu importe donc que ce soit C: ou /export/home).
justement, à cet endroit il faut pouvoir vérifier sur quel environnement php tourne.
heulman
heulman
"John GALLET" a écrit dans le message de news:
Comment déterminer à coup sûr en php si l'on est sous environnement windows ?
Le peu de spécifique concernant les noms de chemins doit se faire par paramètre de configuration de toutes façons (i.e. utiliser une constante ou un paramètre de configuration aisément modifiable en UN SEUL endroit du code au lieu d'être en dur partout, peu importe donc que ce soit C: ou /export/home).
il y a aussi la localisation: fr_FR sous linux et french sous windows
heulman
"John GALLET" <john.gallet@wanadoo.fr> a écrit dans le message de news:
Pine.LNX.4.44.0611290928100.26530-100000@ns2261.ovh.net...
Comment déterminer à coup sûr en php si l'on est sous environnement
windows
?
Le peu de spécifique concernant les noms de chemins doit se faire par
paramètre de configuration de toutes façons (i.e. utiliser une constante
ou un paramètre de configuration aisément modifiable en UN SEUL endroit du
code au lieu d'être en dur partout, peu importe donc que ce soit C: ou
/export/home).
il y a aussi la localisation:
fr_FR sous linux et french sous windows
Comment déterminer à coup sûr en php si l'on est sous environnement windows ?
Le peu de spécifique concernant les noms de chemins doit se faire par paramètre de configuration de toutes façons (i.e. utiliser une constante ou un paramètre de configuration aisément modifiable en UN SEUL endroit du code au lieu d'être en dur partout, peu importe donc que ce soit C: ou /export/home).
il y a aussi la localisation: fr_FR sous linux et french sous windows
heulman
heulman
"heulman" a écrit dans le message de news: 456c57e1$0$27376$
Bonjour,
Comment déterminer à coup sûr en php si l'on est sous environnement windows ?
Je pense utiliser la constante PHP_OS mais je m'interroge sur sa fiabilité. Windows XP me retourne WINNT. Est-ce toutes les versions de windows retournent une valeur commençant par WIN ?
Peut-être existe-t-il une routine standard qui serait plus fiable ?
j'étais passé à coté de php_uname() qui semble faire l'affaire.
heulman
"heulman" <heulman@hotmail.com> a écrit dans le message de news:
456c57e1$0$27376$ba4acef3@news.orange.fr...
Bonjour,
Comment déterminer à coup sûr en php si l'on est sous environnement
windows ?
Je pense utiliser la constante PHP_OS mais je m'interroge sur sa
fiabilité.
Windows XP me retourne WINNT.
Est-ce toutes les versions de windows retournent une valeur commençant par
WIN ?
Peut-être existe-t-il une routine standard qui serait plus fiable ?
j'étais passé à coté de php_uname() qui semble faire l'affaire.
"heulman" a écrit dans le message de news: 456c57e1$0$27376$
Bonjour,
Comment déterminer à coup sûr en php si l'on est sous environnement windows ?
Je pense utiliser la constante PHP_OS mais je m'interroge sur sa fiabilité. Windows XP me retourne WINNT. Est-ce toutes les versions de windows retournent une valeur commençant par WIN ?
Peut-être existe-t-il une routine standard qui serait plus fiable ?
j'étais passé à coté de php_uname() qui semble faire l'affaire.
heulman
John GALLET
paramètre de configuration de toutes façons (i.e. utiliser une constante ou un paramètre de configuration aisément modifiable en UN SEUL endroit du code au lieu d'être en dur partout, peu importe donc que ce soit C: ou /export/home).
justement, à cet endroit il faut pouvoir vérifier sur quel environnement php tourne.
Non.
Et pas plus concernant l'internationalisation, il n'y a pas que setlocale dans la vie. Passez 10 minutes à regarder le fichier config.inc.php et le répertoire lang/ de phpMyAdmin par exemple, ça pourra éventuellement vous donner des idées.
Enfin après, du moment que je n'ai pas à débugger vot'truc après, ce que j'en dis hein... Faites donc comme vous voudrez.
JG
paramètre de configuration de toutes façons (i.e. utiliser une constante
ou un paramètre de configuration aisément modifiable en UN SEUL endroit du
code au lieu d'être en dur partout, peu importe donc que ce soit C: ou
/export/home).
justement, à cet endroit il faut pouvoir vérifier sur quel environnement php
tourne.
Non.
Et pas plus concernant l'internationalisation, il n'y a pas que setlocale
dans la vie. Passez 10 minutes à regarder le fichier config.inc.php et le
répertoire lang/ de phpMyAdmin par exemple, ça pourra éventuellement vous
donner des idées.
Enfin après, du moment que je n'ai pas à débugger vot'truc après, ce que
j'en dis hein... Faites donc comme vous voudrez.
paramètre de configuration de toutes façons (i.e. utiliser une constante ou un paramètre de configuration aisément modifiable en UN SEUL endroit du code au lieu d'être en dur partout, peu importe donc que ce soit C: ou /export/home).
justement, à cet endroit il faut pouvoir vérifier sur quel environnement php tourne.
Non.
Et pas plus concernant l'internationalisation, il n'y a pas que setlocale dans la vie. Passez 10 minutes à regarder le fichier config.inc.php et le répertoire lang/ de phpMyAdmin par exemple, ça pourra éventuellement vous donner des idées.
Enfin après, du moment que je n'ai pas à débugger vot'truc après, ce que j'en dis hein... Faites donc comme vous voudrez.
JG
Michael DENIS
Le 29 Nov 2006 10:55:34 GMT, CrazyCat écrivait:
Je suis d'accord mais il y a toujours des exceptions, ne serait-ce que lorsqu'on doit traiter des fichiers en utilisant les chemins physiques.
Non. Cet exemple en tous les cas rentre parfaitement dans le cas expliqué par John. Au lieu de mettre quelquechose comme:
if windows $chemin="C:mon_cheminwwwimagestest.jpg" else //linux $chemin="/home/www/images/test.jpg }
on met
//définition des variables globales if windows $racine="C:mon_cheminwww" $separ="" else $racine="/home/www/" $separ="/" }