IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Connaitre le type d'OS du serveur [À faire]


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 69
    Par défaut Connaitre le type d'OS du serveur
    Salut,

    Pour une application à distribuer, j'aimerais pouvoir automatiser certains paramétrages en fonction de l'OS sur lequel tourne le serveur web.
    J'aurais juste besoin de faire la distinction entre Mac, Win et Linux/Unix

    Je peux me baser sur la variable globale $_SERVER['SERVER_SOFTWARE'] mais je suis limité pour l'instant par le fait que :
    - je n'ai pas de PHP sur windows qui tourne pour savoir ce que retourne cette variable
    - idem sur Mac
    - je voudrais éviter de faire des tests sur 250 000 noms possibles d'OS (lister toutes les distrib Linux) pour faire la correspondance.

    Alors à moins que les valeurs sur Win et Mac aient chacune leur spécificité (genre sur windows on a vraissemblablement "windows" à coup sûr, mais je peux pas vérifier, mais qu'en est-il sur Mac ?) pour pouvoir procéder par élimination facilement (si le serveur n'est pas sur Win ni sur Mac, on peut supposer qu'il est sur un Linux/Unix ?), existe-t-il un petit hack pour connaitre cette information ? euh bon, la phrase est un peu lourde, mais syntaxiquement correcte, je crois...)

    D'avance merci

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Je ne suis pas un spécialiste Mac :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    define('WINDOWS', 1);
    define('MAC', 2);
    define('UNIX', 3);
     
    function getOS() {
        if (defined('PHP_OS') {
            if (strncasecmp('WIN', PHP_OS, 3)) {
                return WINDOWS;
            } elseif (strncasecmp('Mac', PHP_OS, 3)) { // A vérifier
                return MAC;
            }
        }
        if (defined('PHP_EOL')) {
            if (!strcmp("\r\n", PHP_EOL)) {
                return WINDOWS;
            } elseif (!strcmp("\r", PHP_EOL)) {
                return MAC;
            } elseif (!strcmp("\n", PHP_EOL)) {
                return UNIX;
            }
        }
        if (DIRECTORY_SEPARATOR == "\\" && PATH_SEPARATOR == ';' && PHP_SHLIB_SUFFIX= 'dll') {
            return WINDOWS;
        } elseif (DIRECTORY_SEPARATOR == '/' && PATH_SEPARATOR == ':' && PHP_SHLIB_SUFFIX= 'so') {
            return UNIX; // pas de différenciation avec Mac
        }
    }

    Julp.

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 69
    Par défaut
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/02/2008, 15h03
  2. [CSS][formulaire] connaitre le type d'un champ input
    Par psychomatt dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 22/09/2005, 12h13
  3. Connaitre le type de character set
    Par vbcasimir dans le forum Administration système
    Réponses: 4
    Dernier message: 02/08/2005, 13h02
  4. Réponses: 10
    Dernier message: 27/04/2005, 11h26
  5. Connaitre le type de chaque col d'une table Paradox
    Par mjp dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/02/2005, 21h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo