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

Ubuntu Discussion :

Script PHP permettant d'effectuer une capture d'écran de site


Sujet :

Ubuntu

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Script PHP permettant d'effectuer une capture d'écran de site
    Bonjour,

    Je cherche à créer un script PHP permettant de créer à la volée une miniature d'une page web.

    Je suis issu de windows, mais je connais bien assez bien l'administration de serveurs non graphiques (red hat 7.2 ou debian). Par contre, j'ai cru comprendre que pour pouvoir parvenir à mes fins, il me fallait passer par un Linux avec interface graphique : j'ai donc installé Ubuntu, sur lequel je débute.

    J'ai également installé firefox, et l'extension "Pearl Cresent Page Saver" qui permet de sauvegarder sous forme d'image une page web.

    Lorsque je passe par mon interface graphique (NX client) et que j'ouvre une ligne de commande, je fais donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    firefox -saveimage http://www.yahoo.com/ -saveas /tmp/test.png
    et tout fonctionne correctement : il me génère mon image test.png.

    Ma question : comment faire la même chose dans un script PHP ?

    Quand je fais :

    exec('firefox -saveimage http://www.yahoo.com/ -saveas /tmp/test.png');
    rien n'est exécuté...

    Merci de votre aide!

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 26
    Points : 24
    Points
    24
    Par défaut
    C'est plus une question de PHP que de Linux non? Je dis ça parce que peut-être tu aurais plus de chances d'avoir une réponse dans le forum PHP.

    Bref, tu es chanceux, je suis un programmeur PHP!

    As-tu essayé la commande system() au lieu de exec()?

    http://php.net/manual/fr/function.system.php

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Très bonne question, si quelqu'un a une solution, je suis preneur aussi. J'ai lu ici et là qu'il fallait ajouter des utilisateurs au serveur X, puis qu'il fallait executer une commande sudo…

    Déjà je pense qu'il faut spécifier un display à firefox (chez moi c'est firefox --display=:1000.0) … et ensuite c'est un problème d'utilisateur. J'ai essayé en executant apache en tant qu'utilisateur, mais c'est pas vraiment une solution...

  4. #4
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    PHP c'est serveur side
    Pourquoi ne pas plutôt faire un script bash ? Ce serait plus logique !

  5. #5
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    personnellement c'est parce que je ne sais pas faire

  6. #6
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    C'est un peu plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #!/bin/sh
    for site in SITE1 SITE2 SITE3 
    do 
    firefox -saveimage http://$site -saveas /tmp/$site.png
    done

  7. #7
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    il me semble qu'il te faut le chemin complet vers l'application à exécuter et vérifier que tu as le droit d'executer firefox avec le user du script.

Discussions similaires

  1. Réponses: 10
    Dernier message: 02/02/2011, 21h13
  2. Lien sur un script php avec envoi d'une valeur
    Par Invité(e) dans le forum Langage
    Réponses: 14
    Dernier message: 21/01/2010, 11h18
  3. Script Shell permettant de copier une colonne
    Par jaljal dans le forum Unix
    Réponses: 1
    Dernier message: 05/06/2009, 00h08
  4. Effectuer une capture d'écran en mode graphique
    Par xantares dans le forum Assembleur
    Réponses: 11
    Dernier message: 18/06/2007, 22h35
  5. Réponses: 4
    Dernier message: 19/10/2005, 09h20

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