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 135
    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 179
    J'aime reçus:
    330
    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:
    792
    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 135
    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 179
    J'aime reçus:
    330
    Location != location.

    Tu as inspecté le $headers['Location'] ? Ça donne quoi ?
     
  6. patapon87
    patapon87 WRInaute passionné
    Inscrit:
    12 Janvier 2010
    Messages:
    1 135
    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
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