Php Suivi d'une redirection 302

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par patapon87, 22 Juillet 2015.

  1. patapon87
    patapon87 WRInaute passionné
    Inscrit:
    12 Janvier 2010
    Messages:
    1 124
    J'aime reçus:
    0
    Salut !

    Pour un projet j'ai un certain nombre d'urls que je dois suivre et connaitre le statuts
    Le problème est que parfois pour certaines URL qui ont une redirection 302 je n'arrive pas à détecter l'URL à suivre

    Hors l'outil de webrankinfo https://www.webrankinfo.com/outils/header.php le fais très bien donc ça doit être possible :p

    Pour l'instant j'utilise get_headers(), qui fonctionne dans 80% des cas : je récupère l'index numero 5 et j'ai mon URL à suivre. Mais dans certains cas c'est un autre numéro qu'il faut suivre

    Est ce que vous avez une idée de comment je pourrais m'en sortir ?

    Merci
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 169
    J'aime reçus:
    345
    Je viens de tester et ça suit bien les multiples 302:
    PHP:
    <span class="syntaxdefault"><br /></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br />$headers </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> get_headers</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'http://httpbin.org/relative-redirect/5'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'<pre>'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">print_r</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$headers</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'</pre>'</span><span class="syntaxkeyword">;<br />&nbsp;</span><span class="syntaxdefault"></span>
    Code:
    Array
    (
        [0] => HTTP/1.1 302 FOUND
        [1] => Server: nginx
        [2] => Date: Wed, 22 Jul 2015 16:51:11 GMT
        [3] => Content-Type: text/html; charset=utf-8
        [4] => Content-Length: 0
        [5] => Connection: close
        [6] => Location: /relative-redirect/4
        [7] => Access-Control-Allow-Origin: *
        [8] => Access-Control-Allow-Credentials: true
        [9] => HTTP/1.1 302 FOUND
        [10] => Server: nginx
        [11] => Date: Wed, 22 Jul 2015 16:51:12 GMT
        [12] => Content-Type: text/html; charset=utf-8
        [13] => Content-Length: 0
        [14] => Connection: close
        [15] => Location: /relative-redirect/3
        [16] => Access-Control-Allow-Origin: *
        [17] => Access-Control-Allow-Credentials: true
        [18] => HTTP/1.1 302 FOUND
        [19] => Server: nginx
        [20] => Date: Wed, 22 Jul 2015 16:51:12 GMT
        [21] => Content-Type: text/html; charset=utf-8
        [22] => Content-Length: 0
        [23] => Connection: close
        [24] => Location: /relative-redirect/2
        [25] => Access-Control-Allow-Origin: *
        [26] => Access-Control-Allow-Credentials: true
        [27] => HTTP/1.1 302 FOUND
        [28] => Server: nginx
        [29] => Date: Wed, 22 Jul 2015 16:51:12 GMT
        [30] => Content-Type: text/html; charset=utf-8
        [31] => Content-Length: 0
        [32] => Connection: close
        [33] => Location: /relative-redirect/1
        [34] => Access-Control-Allow-Origin: *
        [35] => Access-Control-Allow-Credentials: true
        [36] => HTTP/1.1 302 FOUND
        [37] => Server: nginx
        [38] => Date: Wed, 22 Jul 2015 16:51:12 GMT
        [39] => Content-Type: text/html; charset=utf-8
        [40] => Content-Length: 0
        [41] => Connection: close
        [42] => Location: /get
        [43] => Access-Control-Allow-Origin: *
        [44] => Access-Control-Allow-Credentials: true
        [45] => HTTP/1.1 200 OK
        [46] => Server: nginx
        [47] => Date: Wed, 22 Jul 2015 16:51:13 GMT
        [48] => Content-Type: application/json
        [49] => Content-Length: 130
        [50] => Connection: close
        [51] => Access-Control-Allow-Origin: *
        [52] => Access-Control-Allow-Credentials: true
    )
    
    Si tu mets le paramètre format=1
    Code:
    Array
    (
        [0] => HTTP/1.1 302 FOUND
        [Server] => Array
            (
                [0] => nginx
                [1] => nginx
                [2] => nginx
                [3] => nginx
                [4] => nginx
                [5] => nginx
            )
    
        [Date] => Array
            (
                [0] => Wed, 22 Jul 2015 16:54:55 GMT
                [1] => Wed, 22 Jul 2015 16:54:55 GMT
                [2] => Wed, 22 Jul 2015 16:54:55 GMT
                [3] => Wed, 22 Jul 2015 16:54:55 GMT
                [4] => Wed, 22 Jul 2015 16:54:56 GMT
                [5] => Wed, 22 Jul 2015 16:54:56 GMT
            )
    
        [Content-Type] => Array
            (
                [0] => text/html; charset=utf-8
                [1] => text/html; charset=utf-8
                [2] => text/html; charset=utf-8
                [3] => text/html; charset=utf-8
                [4] => text/html; charset=utf-8
                [5] => application/json
            )
    
        [Content-Length] => Array
            (
                [0] => 0
                [1] => 0
                [2] => 0
                [3] => 0
                [4] => 0
                [5] => 130
            )
    
        [Connection] => Array
            (
                [0] => close
                [1] => close
                [2] => close
                [3] => close
                [4] => close
                [5] => close
            )
    
        [Location] => Array
            (
                [0] => /relative-redirect/4
                [1] => /relative-redirect/3
                [2] => /relative-redirect/2
                [3] => /relative-redirect/1
                [4] => /get
            )
    
        [Access-Control-Allow-Origin] => Array
            (
                [0] => *
                [1] => *
                [2] => *
                [3] => *
                [4] => *
                [5] => *
            )
    
        [Access-Control-Allow-Credentials] => Array
            (
                [0] => true
                [1] => true
                [2] => true
                [3] => true
                [4] => true
                [5] => true
            )
    
        [1] => HTTP/1.1 302 FOUND
        [2] => HTTP/1.1 302 FOUND
        [3] => HTTP/1.1 302 FOUND
        [4] => HTTP/1.1 302 FOUND
        [5] => HTTP/1.1 200 OK
    )
    
     
  3. loubet
    loubet WRInaute impliqué
    Inscrit:
    19 Février 2003
    Messages:
    788
    J'aime reçus:
    0
    tu te bases sur la valeur supposée de ce que tu cherches, plutôt que sur une position fixe.
     
  4. patapon87
    patapon87 WRInaute passionné
    Inscrit:
    12 Janvier 2010
    Messages:
    1 124
    J'aime reçus:
    0
    Salut

    Merci pour votre aide. Dans ton cas spout pour l'URL ca retourne

    Code:
    [6] => Location: /relative-redirect/4
    Moi ca varie entre [6] et [5] donc je ne sais pas trop où chercher

    Alors je suppose que je devrais mettre format=1 pour avoir quelque chose du format
    Code:
     [Location] => Array
            (
                [0] => /relative-redirect/4
    Et ne plus dépendre du numéro d'index.

    MAIS je suis une grosse buse et je ne sais pas comment récupérer cette valeur
    Lorsque je fais
    Code:
    $suivre = get_headers($url,1));
    echo $suivre['Location'][0] ;
    
    J'ai une erreur Notice: Undefined index: location
     
  5. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 169
    J'aime reçus:
    345
    Location != location.

    Tu as inspecté le $headers['Location'] ? Ça donne quoi ?
     
  6. patapon87
    patapon87 WRInaute passionné
    Inscrit:
    12 Janvier 2010
    Messages:
    1 124
    J'aime reçus:
    0
    Non mais c'est à devenir fou, j'ai dû le faire 10 fois et ca marchait pas et là je n'ai aucune idée du pourquoi mais ça tourne bien...

    Merci spout et loubet
     
Chargement...
Similar Threads - Php Suivi redirection Forum Date
Redirections en PHP non suivies ? Référencement Google 16 Octobre 2009
Un lien hypertexte dans phpbb est il suivi par google ? Netlinking, backlinks, liens et redirections 20 Novembre 2005
Indent en mode PHP ? Développement d'un site Web ou d'une appli mobile 9 Juin 2022
Arborescence de classes PHP et séquentialité. Développement d'un site Web ou d'une appli mobile 16 Mai 2022
Afficher des infos depuis plusieurs page en PHP Développement d'un site Web ou d'une appli mobile 23 Mars 2022
Sites de scripts PHP, jQuery, Ajax, etc. Le café de WebRankInfo 20 Mars 2022
Détecter arrêt user d'un script PHP ? Développement d'un site Web ou d'une appli mobile 28 Décembre 2021
sessions PHP sans cookies ? Développement d'un site Web ou d'une appli mobile 26 Décembre 2021
Afficher la dernière version d'un fichier php ? Développement d'un site Web ou d'une appli mobile 8 Novembre 2021
PHP / CURL : interrogation page tiers ne fonctionne plus Développement d'un site Web ou d'une appli mobile 2 Octobre 2021
Actualiser un script php toutes les 10 secondes Développement d'un site Web ou d'une appli mobile 6 Septembre 2021
PHP : problème de comparaison égalité dans boucle FOR avec incrément décimal de 0.1 Développement d'un site Web ou d'une appli mobile 26 Août 2021
Cache Etag nginx et PHP ? Administration d'un site Web 7 Août 2021
Fichier avec ou sans extension php pour le référencement Crawl et indexation Google, sitemaps 3 Août 2021
mon code ne fonctionne pas pour masquer les .php URL Rewriting et .htaccess 31 Juillet 2021
Malware S.Susp.PHP.gen... Administration d'un site Web 15 Juillet 2021
La fonction mail (PHP) ne passe pas ! Demandes d'avis et de conseils sur vos sites 28 Juin 2021
Fonction récursive PHP. Développement d'un site Web ou d'une appli mobile 24 Avril 2021
Redirections .htm en .php URL Rewriting et .htaccess 16 Mars 2021
URL avec et sans .php Développement d'un site Web ou d'une appli mobile 14 Mars 2021