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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Forum] Récupérer pdf sur un site avec une adresse incluant une variable


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 13
    Points : 6
    Points
    6
    Par défaut [Forum] Récupérer pdf sur un site avec une adresse incluant une variable
    Bonjour,

    J'ai un script php qui me sert à récupérer un pdf en "simulant" si je puis dire une action sur un site. Ce site est très casse bonbon car il faut se login puis franchir 5 liens différents avant d'arriver au pdf voulu.
    Le truc c'est que j'arrive à faire tout ça mais un petit paramètre me bloque. Ce script php tourne tout les jours en boucle et le but est de récupérer le pdf le plus ressent à chaque fois!!!! (c'est là où est le problème)
    Dans mon script, j'ai des variables auxquels j'affecte un url puis mon script php va sur les url une par une pour arriver au pdf. Je vous mes un petit extrait de mon script pour vous faire une idée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $urlAudioTr1Etape1 ='https://truc.fr/CDQ/listCahierTerrain.do';
    $urlAudioTr1Etape2 ='https://truc.fr/CDQ/initialiserCahierTerrain.do?afficherMenu=true&tranche=12&nomCahier=Audio%20de%208h05%20et%20Point%20s%C3%BBret%C3%A9%20%20Tr%201/2&numCahier=28&randParam=0.21559041768658382';
    $urlAudioTr1Etape3 ='https://truc.fr/CDQ/visualiserRelevesQuart.do?afficherMenu=true&idCahier=cdq_ADT_12_28&idMenu=releve';
    $urlAudioTr1Etape4 ='https://truc.fr/CDQ/consulterRelevesQuart.do?idRelevesQuart=178110&idCahier=cdq_ADT_12_28&idMenu=releve';
    $urlAudioTr1Etape5 ='https://truc.fr/CDQ/impression.html';
    C'est légèrement confidentiel donc l'adresse est changée.
    Dans ce petit code, vous voyez un numéro dans l'adresse de la variable $urlAudioTr1Etape4 qui est en gras. Et le problème est là !!! En fait cette valeur s'incrémente de façon aléatoire mais elle s'incrémente une fois par jour pour créer le lien du dernier pdf à jour. Pour que vous ne soyez pas perdu, voici comment j'utilise ces variables.
    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
    /* Releve de quart Audio Tranche 1-2 */
    curl_setopt($ch, CURLOPT_POST, false);
    curl_setopt($ch, CURLOPT_URL, $urlAudioTr1Etape1);
    $response = curl_exec($ch);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $urlAudioTr1Etape2);
    $response = curl_exec($ch);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $urlAudioTr1Etape3);
    $response = curl_exec($ch);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $urlAudioTr1Etape4);
    $response = curl_exec($ch);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $urlAudioTr1Etape5);
    $response = curl_exec($ch);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $AudioTr1);
    $response = curl_exec($ch);
    $file = fopen($filename5, 'w');
    fputs($file, $response);
    fclose($file);
    Vous vous souvenez du numéro en gras juste au dessus ? J'ai besoin d'aide sur ce point pour voir si je peux lui mettre en paramètre à la place de ce numéro une variable qui lui dit "va à l'adresse où ce numéro est le plus grand".

    Merci d'avance j'espère que je ne vous ai pas perdu !! =)

  2. #2
    Membre habitué Avatar de alejandro
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2004
    Messages : 167
    Points : 188
    Points
    188
    Par défaut
    Bonjour,

    Tu ne peux pas fonctionner comme ça, c'est à toi de vérifier si l'URL existe ou pas, il n'existe pas d'autre méthode pour vérifier si ton URL est correcte que de faire une requête hypertexte dessus (comme tu fais avec ton cURL).

    Normalement si le site est bien fait et que tu donne un mauvais numéro cela devrait te retourner une erreur 404 - Page not found ou un autre code d'erreur pour t'indiquer que ta requête est invalide.

    Donc pour trouver et si tu peux, fais plusieurs appels et essaye d'incrémenter ton numéro de 1 à chaque appel et quand tu rencontres une erreur (code retour 404 ou autre) alors tu sais que l'appel précédent correspond au dernier PDF créé par l'application.

    Le mieux étant de stocker le dernier numéro valide en base de données ou dans un fichier texte pour repartir de celui-là la prochaine fois.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://truc.fr/CDQ/consulterRelevesQuart.do?idRelevesQuart=178110&idCahier=cdq_ADT_12_28&idMenu=releve
    Réponse : 200 OK (Le fichier existe)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://truc.fr/CDQ/consulterRelevesQuart.do?idRelevesQuart=178111&idCahier=cdq_ADT_12_28&idMenu=releve
    Réponse : 200 OK (celui-ci aussi existe)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://truc.fr/CDQ/consulterRelevesQuart.do?idRelevesQuart=178112&idCahier=cdq_ADT_12_28&idMenu=releve
    Réponse : 404 NOT FOUND (ha, celui-ci n'existe pas, c'est donc le précédent qui est le bon)

    En espérant t'avoir donné une piste pour résoudre ton problème.

    Cdt,

Discussions similaires

  1. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  2. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  3. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Réponses: 2
    Dernier message: 31/05/2006, 15h15

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