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 :

script exécuté en local ou par serveur [PHP 5.4]


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 99
    Par défaut script exécuté en local ou par serveur
    Bonjour,

    Petite question simple (pour ceux qui ont la réponse ;-)):

    J'ai un script php de migration, comme son exécution est très longue je préfère le lancer directement en ligne de commande (sous linux: php monscript.php).

    Mais j'utilise également ce script pour faire des migrations ponctuelles (1 seul document à la fois).

    Je voudrais pouvoir savoir dès le début d'exécution du script si je suis en local ou si je passe par apache.
    Je pensais le faire en testant les variables $_SERVER, mais en ligne de commande cela génère une erreur puisqu'elles n'existe pas.

    Est-ce que l'un d'entre vous à déjà eu ce test à faire et comment s'en est'il sorti?

    D'avance merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faut chercher un peu
    http://www.php.net/manual/fr/function.php-sapi-name.php

    Au passage :
    mais en ligne de commande cela génère une erreur puisqu'elles n'existe pas.
    Si tu testes l'existence d'une variable, tu n'obtiens pas d'erreur quand elle n'existe pas. Logique.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 99
    Par défaut
    Pour la recherche, lorsque l'on a pas la réponse, il n'est pas évident de formuler la question. ;-)

    Entre temps (L'alerte par email sur une discussion ne semble pas fonctionner), j'avais réglé le problème avec un isset, qui lui ne retourne pas d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (isset($_SERVER['HTTP_HOST']))
    		$sScriptMode = 'htmlClient' ;
    else 
    		$sScriptMode = 'local' ;
    car :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if ($_SERVER['HTTP_HOST'] != '')
    Me retourne:
    Undefined index: HTTP_HOST
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (is_array($_SERVER))
    Me retourne toujours true

    Suite à ta réponse, j'ai améliorer le test avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (substr(php_sapi_name(), 0, 3) == 'cli') 
         $sScriptMode = 'local' ;
    else
         $sScriptMode = 'html' ;
    Merci pour ta réponse, elle correspond exactement à ce que je cherchais.

    Bonne fin de journée.

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

Discussions similaires

  1. Exécuter un script local sur un serveur
    Par xgopox dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 05/10/2011, 14h55
  2. script exécution multi serveur
    Par darksouf dans le forum Linux
    Réponses: 2
    Dernier message: 31/01/2009, 00h16
  3. Réponses: 14
    Dernier message: 08/01/2009, 10h29
  4. Réponses: 18
    Dernier message: 15/02/2006, 13h51
  5. Réponses: 9
    Dernier message: 25/10/2005, 14h23

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