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 003
    J'aime reçus:
    284
    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 003
    J'aime reçus:
    284
    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
Redirections en PHP non suivies ? Référencement Google 16 Octobre 2009
PHP empêcher form onsubmit si formulaire invalide Développement d'un site Web ou d'une appli mobile Lundi à 17:13
Parser en php un fichier xml Développement d'un site Web ou d'une appli mobile 12 Juin 2020
UX sur Android (et iOS) : Le $_POST en php qui fait mal Développement d'un site Web ou d'une appli mobile 10 Juin 2020
formulaire de contact sans php Développement d'un site Web ou d'une appli mobile 5 Avril 2020
Ne pas mettre à jour forum Phpbb Administration d'un site Web 19 Février 2020
Phpbb et app.php et RSS ? Débuter en référencement 17 Février 2020
Title et meta déscription par PHP Référencement Google 20 Décembre 2019
Boucle PHP et référencement Rédaction web et référencement 13 Décembre 2019
Mettre à jour Php Administration d'un site Web 1 Décembre 2019
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice