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 :

Téléchargement de fichiers d'une page web automatiquement


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Novice
    Inscrit en
    Mars 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Mars 2014
    Messages : 65
    Par défaut Téléchargement de fichiers d'une page web automatiquement
    Bonjour à tous !

    Je suis actuellement en alternance en informatique, on me demande de créer un fichier php ou batch qui peut télécharger des documents dont les liens se trouvent dans un fichier php.

    Je m'explique:
    - l'utilisateur rentre le nom du fichier php (une page web où se trouve une liste de lien)
    - le fichier php ou batch permettra de récupérer tous les liens présents dans le php choisit et les téléchargera sur son ordinateur

    J'aimerais savoir si cela est possible en PHP ou avec un fichier Batch? Si non, avec quel langage?
    Ne voyant pas aussi comment faire, si vous pouviez m'expliquer les démarches pour le faire

    Merci de votre aide !

  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
    C'est possible en PHP.
    Il suffit de parser la page HTML avec DomDocument par exemple pour lister les liens et de recuperer le document distant avec file_get_contents()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Novice
    Inscrit en
    Mars 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Mars 2014
    Messages : 65
    Par défaut
    Etant débutant, j'ai cherché ce que tu m'as dis sur internet mais j'ai pas compris grand chose malheureusement ^^""

    J'ai également trouvé ce bout de code:
    Code PHP : 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
    <?PHP
      $doc = new DOMDocument();
      $doc->loadHTML($htmlinput);
     
      // all links in #content
      $links = array();
      $container = $doc->getElementById("content");
      $arr = $container->getElementsByTagName("a");
      foreach($arr as $item) {
        $href =  $item->getAttribute("href");
        $text = trim(preg_replace("/[\r\n]+/", " ", $item->nodeValue));
        $links[] = array(
          'href' => $href,
          'text' => $text
        );
      }
     
     
      $pageweb = file_get_contents();
      echo  $pageweb;
    ?>

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Salut,

    Il faut regarder le manuel pour comprendre les fonctions que tu utilise...
    file_get_contents attend comme paramètre l'adresse d'un fichier ! (le contenu du href par exemple).

  5. #5
    Membre confirmé
    Homme Profil pro
    Novice
    Inscrit en
    Mars 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Mars 2014
    Messages : 65
    Par défaut
    Je reviens vers vous car j'ai avancé dans mon code mais je reste tout de même bloquer à l'étape du téléchargement.

    J'ai fais des recherches pour voir comment on pouvait forcer le téléchargement de fichiers mais cela ne correspond pas vraiment à ce que je cherche.

    Pour télécharger tous les liens d'un fichier php, j'ai tout d'abord parser mon fichier et écrit tous les href trouvés sur des lignes différentes dans un nouveau fichier texte.
    Exemple nouveau fichier texte:
    lien1
    lien2
    lien3...

    Ensuite pour forcer le téléchargement, j'aimerai prendre chaque lien de ce nv_fichier et de forcer le téléchargement. Ce que je n'arrive pas à faire ^^'

    Mon code avec la fonction qui permet de télécharger:
    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
     
    if ($nv_fichier) // si nouveau fichier ouvert
    {
    while (!feof($nv_fichier)) // tant que l'on est pas à la fin du nouveau fichier 
    {
    $fichier_pdf = fgets($nv_fichier);
     
    function forcerTelechargement($situation, $poids)
    {
    header('Content-Type: application/octet-stream');
    header('Content-Length: '. $poids);
    header('Pragma: no-cache');
    header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
    header('Expires: 0');
    readfile($situation);
    exit();
    }
     
    forcerTelechargement($fichier_pdf, 10000); // telecharge le fichier
     
    }
    }
    fclose($nv_fichier); //fermeture nouveau fichier
    echo "les fichiers ont ete telecharges";

    Merci de votre aide

  6. #6
    Membre confirmé
    Homme Profil pro
    Novice
    Inscrit en
    Mars 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Mars 2014
    Messages : 65
    Par défaut
    Avec ce même code que dans mon post précédent, j'ai mon fichier telecharger.php qui télécharge un fichier telecharger.php avec ceci dedans:

    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
    <font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
    <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Warning: readfile(LIEN
    ) [<a href='function.readfile'>function.readfile</a>]: failed to open stream: Permission denied in C:\wamp\www\test\telecharger.php on line <i>35</i></th></tr>
    <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
    <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
    <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0009</td><td bgcolor='#eeeeec' align='right'>374640</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp\www\test\telecharger.php' bgcolor='#eeeeec'>..\telecharger.php<b>:</b>0</td></tr>
    <tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0014</td><td bgcolor='#eeeeec' align='right'>383648</td><td bgcolor='#eeeeec'>forcerTelechargement(  )</td><td title='C:\wamp\www\test\telecharger.php' bgcolor='#eeeeec'>..\telecharger.php<b>:</b>39</td></tr>
    <tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.0014</td><td bgcolor='#eeeeec' align='right'>384144</td><td bgcolor='#eeeeec'><a href='http://www.php.net/readfile' target='_new'>readfile</a>
    (  )</td><td title='C:\wamp\www\test\telecharger.php' bgcolor='#eeeeec'>..\telecharger.php<b>:</b>35</td></tr>
    </table></font>
    <br />
    <font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
    <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\test\telecharger.php on line <i>35</i></th></tr>
    <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
    <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
    <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0009</td><td bgcolor='#eeeeec' align='right'>374640</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp\www\test\telecharger.php' bgcolor='#eeeeec'>..\telecharger.php<b>:</b>0</td></tr>
    <tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0014</td><td bgcolor='#eeeeec' align='right'>383648</td><td bgcolor='#eeeeec'>forcerTelechargement(  )</td><td title='C:\wamp\www\test\telecharger.php' bgcolor='#eeeeec'>..\telecharger.php<b>:</b>39</td></tr>
    </table></font>
    Si je comprends bien le deuxième message d'erreur c'est le temps exécution que j'ai augmenté avec : ini_set ('max_execution_time', 0);
    Par contre, pour le premier, l'accès n'est pas autorisé, comment puis-je faire pour que cela le devienne?

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

Discussions similaires

  1. comment actualiser une page web automatiquement ?
    Par safadev dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2006, 23h34
  2. Comment fermer une page web automatiquement
    Par dessinateurttuyen dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 10/08/2006, 10h20
  3. Réponses: 2
    Dernier message: 19/12/2005, 13h15
  4. |VB6] Comment Lister les liens vers des fichiers d'une page web
    Par Mayti4 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 18/01/2005, 18h17
  5. Insérer un fichier dans une page web
    Par Mad666 dans le forum ASP
    Réponses: 6
    Dernier message: 05/05/2004, 11h22

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