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

Linux Discussion :

Shell vers PHP


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développement d'outils métier
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Développement d'outils métier
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Par défaut Shell vers PHP
    Bonjour à tous,

    Je travaille sous DEBIAN SQUEEZE et je cherche actuellement à déclencher un évènement sous PHP lorsqu'un fichier arrive dans un répertoire via FTP.
    Je détecte l'arrivée de ce fichier avec incrontab (avec un shell BASH) et cela marche bien.

    Dans le script lancé par la détection de l'arrivée des fichiers, je souhaite déclencher la lecture de ce fichier depuis PHP pour mettre à jour une base de données sous MYSQL.

    Comment peut on faire passer un paramètre du shell vers PHP. Ce paramètre sera principalement le nom du fichier qui vient d'arriver dans le répertoire ciblé.

    Si quelqu'un veut bien m'aider, je serai ravi de donner tous les renseignements pour l'aider dans sa démarche.

    Bien cordialement à tous

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 672
    Par défaut
    Bonjour,

    c'est quoi ces fichiers ? ils ont besoin d'une transformation ? pourquoi utiliser php ?
    bash peut appeler des programmes pour parser les fichiers s'ils sont volumineux, et le client mysql pour mettre à jour la base de données.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre émérite Avatar de Etre_Libre
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 751
    Par défaut
    Via un script simple, on peut exécuter du PHP en ligne de commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #!/bin/sh
    /usr/local/php/bin/php -f /chemin/du/fichier_php_a_executer.php

    Attention à bien trouver l'exécutable "php" car son chemin peut différer d'une distribution à l'autre

  4. #4
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Il faut aussi faire attention à installer les bons packages. PHP en mode shell s'installe comme ceci sous Debian & co :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sudo aptitude update # mise à jour des dépots (si ça n'a pas été fait)
    sudo aptitude install php5-cli
    Comme le dit Etre_Libre, il suffira ensuite d'appeler le script php via la ligne de commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "PATH=$PATH:/chemin_vers_executable_php" >> ~/.bashrc # pour être tranquille une bonne fois pour toute
    # on redémarre le shell
    php mon_script.php
    Pour répondre à ta question sur les paramètres passés au script, un peu comme en C, tu as un tableau $argv et $argc pour le nombre d'arguments passés au script.

    Donc pour passer des arguments :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php my_script.php arg1 arg2
    Après je te laisse regarder : var_dump ($argv);

    Enfin, comme le dit N_Bah, Bash pourrait éventuellement suffire avec un truc dans le style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "UPDATE table SET truc = 'machin' WHERE machin = 'truc';" | mysql -u root nom_db
    Bon après avec la gestion des mots de passes, ça risque d'être un peu plus galère qu'avec PHP

    Cordialement,
    Idriss

Discussions similaires

  1. [AJAX] Portage de Ruby vers PHP
    Par GTJuanpablo dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 01/02/2008, 10h15
  2. Réponses: 6
    Dernier message: 19/09/2005, 12h55
  3. [PHP-JS] lien javascript vers php
    Par guttts dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/08/2005, 23h00
  4. Réponses: 4
    Dernier message: 13/04/2005, 18h12
  5. Réponses: 3
    Dernier message: 03/02/2005, 13h07

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