Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

De uiteindelijke bestemmingsURL achterhalen

Pagina: 1
Acties:
  • 255 views

Verwijderd

Topicstarter
Mijn vraag is de volgende. Ik wil de individuele URL's zien te vinden van afzonderlijke deals op de website citysecret.nl Ik kom daar na uren zoeken/testen/proberen niet uit. De situatie is als volgt.

Deze website maakt gebruik van een een 'change city' URL voor de actuele aanbieding van vandaag. Dus bijvoorbeeld:

http://www.citysecret.nl/change/city/Rotterdam

Is een redirect naar:

http://www.citysecret.nl/...3gangen-menu-bij-sorbonne

Die tweede URL wil ik dus graag bewaren maar wat ik ook probeer ik krijg altijd dezelfde URL terug. In dit geval de deal in Amsterdam

Ik heb eerst zelf e.a geprobeerd maar, aangezien ik niet echt een kei ben in PHP, ben toen gaan zoeken naar bestaande scripts. Allen werken wel maar geven nooit de uiteindelijke URL terug.

Tips zijn zeer welkom!

  • HenkEisDS
  • Registratie: Maart 2004
  • Laatst online: 26-11 20:59
Heb je hier niet meer aan dan:
http://www.citysecret.nl/sitemap.xml

Verder maakt het geen reet uit wat de deal is, ze kijken alleen naar de deal-id.
http://www.citysecret.nl/deal/view/46/BlablaPuurVoorSEO
is hetzelfde als:
http://www.citysecret.nl/deal/view/46/

Hij doet gewoon niets met die informatie

[ Voor 63% gewijzigd door HenkEisDS op 03-10-2011 18:22 ]


Verwijderd

Topicstarter
HenkEisDS schreef op maandag 03 oktober 2011 @ 18:20:
Heb je hier niet meer aan dan:
http://www.citysecret.nl/sitemap.xml

Verder maakt het geen reet uit wat de deal is, ze kijken alleen naar de deal-id.
http://www.citysecret.nl/deal/view/46/BlablaPuurVoorSEO
is hetzelfde als:
http://www.citysecret.nl/deal/view/46/

Hij doet gewoon niets met die informatie
Slim de sitemap... maar ik zie niet de deals van vandaag helaas.

Wat je zegt over de deal ID klopt uiteraard, maar dat is niet helemaal de kwestie. De vraag is hoe krijg ik die ID's van de verschillende deals voor vandaag bij elkaar gesprokkeld. Er zijn verder geen directe links op de site behalve de bovengenoemde steden URL's.

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 12:20

DexterDee

I doubt, therefore I might be

Zo te zien zit er in de begin URL een 301 of 302 redirect. Het is dus gewoon een kwestie van de response uitlezen. Helaas kan dat met PHP niet direct, omdat de URL handler standaard de redirect al volgt. Als je echter een webrequest doet via een low level socket, dan kun je de redirect wel ophalen. Een voorbeeldje:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function get_redirect_url($url){
    $redirect_url = null; 
 
    $url_parts = @parse_url($url);
    if (!$url_parts) return false;
    if (!isset($url_parts['host'])) return false; //can't process relative URLs
    if (!isset($url_parts['path'])) $url_parts['path'] = '/';
 
    $sock = fsockopen($url_parts['host'], (isset($url_parts['port']) ? (int)$url_parts['port'] : 80), $errno, $errstr, 30);
    if (!$sock) return false;
 
    $request = "HEAD " . $url_parts['path'] . (isset($url_parts['query']) ? '?'.$url_parts['query'] : '') . " HTTP/1.1\r\n"; 
    $request .= 'Host: ' . $url_parts['host'] . "\r\n"; 
    $request .= "Connection: Close\r\n\r\n"; 
    fwrite($sock, $request);
    $response = '';
    while(!feof($sock)) $response .= fread($sock, 8192);
    fclose($sock);
 
    if (preg_match('/^Location: (.+?)$/m', $response, $matches)){
        if ( substr($matches[1], 0, 1) == "/" )
            return $url_parts['scheme'] . "://" . $url_parts['host'] . trim($matches[1]);
        else
            return trim($matches[1]);
 
    } else {
        return false;
    }
 
}

Klik hier om mij een DM te sturen • 3245 WP op ZW


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Verwijderd schreef op maandag 03 oktober 2011 @ 18:17:
Ik heb eerst zelf e.a geprobeerd maar, aangezien ik niet echt een kei ben in PHP, ben toen gaan zoeken naar bestaande scripts. Allen werken wel maar geven nooit de uiteindelijke URL terug.
Op deze manier is het een scriprequest, en die staan we hier niet toe. In PRG gaat het over zelf programmeren. Als je van plan bent om het zelf te maken, en daarbij tegen problemen aanloopt kun je natuurlijk wel een topic openen. Maar hou je daarbij dan wel aan de quickstart, en dan wil ik vooral goed zien wat je zelf al geprobeerd hebt ( Inclusief kleine relevante stukjes code ) en wat daar niet mee wil lukken

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Dit topic is gesloten.