"Complexe" capture d'écran automatique...

Bonjour,
j'aimerais savoir si il y a moyen de avec mon site internet, prendre des captures d'écran, je m'explique:
Mon site est un site de classement de jeux en ligne, je voudrais que quand quelqu'un en référence un nouveau, mon site prenne AUTOMATIQUEMENT une prise d'écran de la page du lien que la personne a enregistré!
Merci d'avance pour vos réponses.

5 réponses

  1. Merci

    Mais n'y as t'il pas moyen de faire comme sur robothumb directement moi même? (avec un code php, comme eux quoi...)
    1. Modérateur
      si tu es capable de coder un tel site ... oui ;)
    2. y as t'il un site qui permet d'apprendre ce genre de trucs complexs?
      Je crois que si on me fait un cours j'y arriverai

      ps: merci de m'avoir répondu
  2. ▶ Bonsoir, tiens cadeau: une fonction que j'ai codé ce matin:

    <?php
    /** 
     * generate screenshot url 
     * 
     * @param string $url url 
     * @return file saved 
     * @author Navid_92 
     * @date 17may2012 
     */ 
    
    function _saveImage($captcha_link) { 
       $ch = curl_init($captcha_link); 
       if(!is_dir('screenshot/')) mkdir('screenshot/'); 
       $fp = fopen('screenshot/'.md5(uniqid(rand(), true)).'.jpg','w'); 
       curl_setopt($ch, CURLOPT_FILE, $fp); 
       curl_setopt($ch, CURLOPT_HEADER, 0); 
       curl_exec($ch); 
       curl_close($ch); 
       fclose($fp); 
    } 
    
    # $ling_site => the site that you want to take a screenshot
    _saveImage($link_site);
    ?>
    

    Amicalement Navid, alias DestEN-
    .::. Contributeur Sécurité Niveau Intermédiaire .::.
    1. Merci beaucoup, je sais que j'en demande beaucoup, mais y aurait-il moyen que tu me mettes des commentaires "// dans le code" pour m'aider à le comprendre ?
      Encore merci pour ton code
    2. Ok, voir réponse suivante.
  3. <?php
    /** 
     * generate screenshot url 
     * 
     * @param string $url url 
     * @return file saved 
     * @author Navid_92 
     * @date 17may2012 
     */ 
    
    function _saveImage($captcha_link) { 
    
        # Initialisation de la session à l'url souhaité
       $ch = curl_init($captcha_link); 
    	
        # Vérification de l'existence du dossier 'screenshot', sinon on le crée
       if(!is_dir('screenshot/')) mkdir('screenshot/'); 
    	
        # Ouverture d'un fichier avec l'attribut 'w' va permettre de créer le fichier brut sans image avec un nom aléatoire
       $fp = fopen('screenshot/'.md5(uniqid(rand(), true)).'.jpg','w'); 
    	
        # Paramétrage de la session cURL pour lui faire comprendre où il va devoir mettre ce qu'il a vu (le site)
       curl_setopt($ch, CURLOPT_FILE, $fp); 
    	
        # Paramétrage destiné à ce que l'on n'affiche pas les en-têtes HTTP car ils nous sont inutiles içi
       curl_setopt($ch, CURLOPT_HEADER, 0); 
    	
        # Execution de la session cURL
       curl_exec($ch); 
    	
        # Une fois que l'execution a été fait, on ferme de la session cURL
       curl_close($ch); 
    	
        # Fermeture du fichier, car on a fini notre enregistrement
       fclose($fp); 
    } 
    
    # Il faut remplacer par le site que tu veux prendre en screenshot
    _saveImage('http://www.##########.com/');
    ?>
    1. Merci, un dernier truc: Je dois donc mettre l'URL dans une balise apellée "$captcha_link" ?
    2. En fait c'était pour un challenge de captcha cracker.

      De plus, ce n'est que le nom du paramètre.
      Si tu veux vraiment la changer, change la, mais change là dans toute la fonction.
      Je m'expliques, regarde les deux exemple qui suit sont totalement identiques:

      function _echo($abc) {
         echo $abc;
      }
      _echo('bouhh!');
      
      /******************************************/
      
      function _echo($captcha_link) {
         echo $captcha_link;
      }
      _echo('bouhh!');


      Je sais pas si t'as compris. Mais le ne te soucie pas de cela, appelle juste la fonction avant et applique là tout bêtement:

      _saveImage('http://www.##########.com/');
    3. et donc, saveImage est le nom de l'endroit où se trouve l'image?
    4. Non c'est juste le nom de la fonction.
      Le dossier où se trouve l'image doit être modifié ici:

          # Vérification de l'existence du dossier 'screenshot', sinon on le crée
         if(!is_dir('screenshot/')) mkdir('screenshot/'); 
      	
          # Ouverture d'un fichier avec l'attribut 'w' va permettre de créer le fichier brut sans image avec un nom aléatoire
         $fp = fopen('screenshot/'.md5(uniqid(rand(), true)).'.jpg','w'); 
    5. Eh, avez-vous testé votre fonction? car quand je l'ai testée en ligne, ça n'a ni enregistré l'iage, ni créé le document "screenhdhot" par contre, ça a affiché le site mais de manière plus qu'étrange...
      Testez-le, vous allez comprendre