|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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:\tmp\mon_appli\mon_dir et que $filename="mon_fichier"; $file=$dir."/".$filename; alors fopen($file,"r") ne fonctionnera pas puisque $file vaut c:\tmp\mon_appli\mon_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) - |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Le 05 Oct 2007 18:07:09 GMT, doug713705
<nospam.doug.letough@free.fr.nospam> écrivait dans fr.comp.lang.php: >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:\tmp\mon_appli\mon_dir >et que > $filename="mon_fichier"; > $file=$dir."/".$filename; > >alors > fopen($file,"r") ne fonctionnera pas puisque > $file vaut c:\tmp\mon_appli\mon_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 |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
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) |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
doug713705 a écrit :
> 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 ? |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
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) - |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
doug713705 a écrit :
> 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 <http://fr3.php.net/manual/fr/function.php-uname.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 |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
doug713705 a écrit :
> 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) |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
> - 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 |
|
![]() |
| Outils de la discussion | |
|
|