O.S du serveur

Le
doug713705
Bonjour à toutes, tous,

J'ai écrit une application en php et j'aurais souhaité que cette application
puisse fonctionner indépendamment du système sur lequel elle tourne.

Or cette application manipule certains fichiers contenu dans des répertoires
définis par l'administrateur dans un fichier de configuration.

Par Ex :

Dans le fichier de conf :
$dir=/tmp/mon_appli/mon_dir;
Dans la page :
$filename="mon_fichier";
$file=$dir."/".$filename;

Pour Mac ou Linux etc aucun problème, par contre pour Windows ca se gate
puisque si :

$dir=c:tmpmon_applimon_dir
et que
$filename="mon_fichier";
$file=$dir."/".$filename;

alors
fopen($file,"r") ne fonctionnera pas puisque
$file vaut c:tmpmon_applimon_dir/mon_fichier

Voici donc mes questions :
- Existe t-il un moyen de détecter le "path separator" à la manière de
Java ?
- Si non, un moyen de détecter l'O.S sur lequel tourne l'appli ?

J'ai googlé sans succès, les variables $_ENV ou $_SERVER ne contiennent pas
ces infos.

phpinfo() Arrive a déterminer l'O.S, j'imagine donc qu'une autre commande
doit pouvoir le faire.

Cependant peut-être me goure-je dans ma façon de contourner le problème.

Vos conseils et/ou liens sont les bienvenus.

--
[ Plus ou moins avec une chance de peut-être ]
- Pour me contacter, enlever nospam (2X) -
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Denis Beauregard
Le #10534
Le 05 Oct 2007 18:07:09 GMT, doug713705

Bonjour à toutes, tous,

J'ai écrit une application en php et j'aurais souhaité que cette application
puisse fonctionner indépendamment du système sur lequel elle tourne.

Or cette application manipule certains fichiers contenu dans des répertoires
définis par l'administrateur dans un fichier de configuration.

Pour Mac ou Linux etc... aucun problème, par contre pour Windows ca se gate
puisque si :

$dir=c:tmpmon_applimon_dir
et que
$filename="mon_fichier";
$file=$dir."/".$filename;

alors
fopen($file,"r") ne fonctionnera pas puisque
$file vaut c:tmpmon_applimon_dir/mon_fichier


Avant de poser la question, pourquoi tu n'as pas essayé ?

/ et fonctionnent tous les deux dans Windows, du moins dans ceux
que j'ai essayé (je suis à Windows 98).

La seule vraie difficulté, c'est en mode invite (prompt ou
command.com) car / sert en DOS à séparer les arguments:

dir c:windows /s

mais

ls /home/compte -ali

mais fopen ("c:windows/win.ini", "r"); devrait fonctionner sous
Windows.


Denis

Mihamina Rakotomandimby
Le #10017
Denis Beauregard wrote:
Avant de poser la question, pourquoi tu n'as pas essayé ?


Sur ce post en particulier, je me permet de réagir:
- Il n'a pas forcément les deux OS sous la main.
- Il ne sait pas si ça marche sur ses machine à cause de sa conf, il
peut etre interessant de savoir si il faut une conf particulière (il ne
le savait pas avant ton post)

Bruno Desthuilliers
Le #10015
Bonjour à toutes, tous,

J'ai écrit une application en php et j'aurais souhaité que cette application
puisse fonctionner indépendamment du système sur lequel elle tourne.

Or cette application manipule certains fichiers contenu dans des répertoires
définis par l'administrateur dans un fichier de configuration.

Il existe déjà pas mal d'applis opensource en PHP. A-tu pensé à regarder

comment elles géraient ce problème ?

doug713705
Le #9471
Le vendredi 5 octobre 2007 21:37, Denis Beauregard s'est exprimé de la sorte
sur fr.comp.lang.php :

Avant de poser la question, pourquoi tu n'as pas essayé ?



J'ai essayé


mais fopen ("c:windows/win.ini", "r"); devrait fonctionner sous
Windows.


Effectivement, le problème venait d'un autre bout de mon code mais je
m'étais arrêté à la première cause probable.

Cependant, j'aurais bien voulu savoir s'il était possible d'identifier l'O.S
du serveur par un bout de code PHP mais je n'ai rien trouvé.
Cela pourrait être utile dans d'autres cas.

Merci de ton aide.

--
[ Plus ou moins avec une chance de peut-être ]
- Pour me contacter, enlever nospam (2X) -

Mickael Wolff
Le #9467

Cependant, j'aurais bien voulu savoir s'il était possible d'identifier l'O.S
du serveur par un bout de code PHP mais je n'ai rien trouvé.


Oui, et tu le trouveras dans la documentation officielle de PHP

Cela pourrait être utile dans d'autres cas.


Lequel ? De toute façon, PHP sous MS Windows c'est le démon (oui, ceci
est une honteuse tentative de troll en cette douce nuit d'automne).

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

Marc
Le #9468

phpinfo() Arrive a déterminer l'O.S, j'imagine donc qu'une autre commande
doit pouvoir le faire.



regarde de ce coté : http://fr.php.net/php_uname (PHP_OS)

doug713705
Le #9463
Le lundi 8 octobre 2007 09:19, Marc s'est exprimé de la sorte sur
fr.comp.lang.php :


phpinfo() Arrive a déterminer l'O.S, j'imagine donc qu'une autre commande
doit pouvoir le faire.



regarde de ce coté : http://fr.php.net/php_uname (PHP_OS)


Parfait merci !
--
[ Plus ou moins avec une chance de peut-être ]
- Pour me contacter, enlever nospam (2X) -


doug713705
Le #9464
Le lundi 8 octobre 2007 09:19, Mickael Wolff s'est exprimé de la sorte sur
fr.comp.lang.php :

De toute façon, PHP sous MS Windows c'est le démon (oui, ceci
est une honteuse tentative de troll en cette douce nuit d'automne).


Parfois il faut savoir composer avec le diable ;-)
gniark gniark gniark !


--
[ Plus ou moins avec une chance de peut-être ]
- Pour me contacter, enlever nospam (2X) -

Tonio
Le #9465
ben la constante : DIRECTORY_SEPARATOR , non?

via : http://fr.php.net/dir
John GALLET
Le #20759
- Existe t-il un moyen de détecter le "path separator" à la manière de
Java ?


http://fr2.php.net/manual/en/ref.dir.php

Mais le paramètre de configuration perso de l'application qu'on laisse à
la discrétion de la personne qui installe, c'est pas mal non plus et
c'est le plus simple.

a++;
JG

Publicité
Poster une réponse
Anonyme