Skip to content

Yönlendirmeli Sayfanın Yönlendirildiği Sayfayı Bulma

Merhaba arkadaşlar,

Bugünkü makalemde sizlere PHP ile bağlanmaya çalıştığınız sayfada 301 veya 302 HTTP yönlendirmesi varsa bu sayfanın hangi sayfaya yönlendirdiğini bulmanızı sağlayacak bir fonksiyon veriyorum. Fonksiyonumuz aşağıdaki gibidir:

function asil_url( $url,  $javascript_dongu = 0, $zaman_asimi = 5 ){
    $url = str_replace( "&", "&", urldecode(trim($url)));
    $cerez = tempnam ("/tmp", "CURLCOOKIE");
    $curl = curl_init();
    curl_setopt( $curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1" );
    curl_setopt( $curl, CURLOPT_URL, $url );
    curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt( $curl, CURLOPT_MAXREDIRS, 10 );
    $content = curl_exec( $curl );
    $cevap = curl_getinfo( $curl );
    curl_close ( $curl );
    if ($cevap['http_code'] == 301 || $cevap['http_code'] == 302){
        ini_set("user_agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1");
        if ($baslik = get_headers($cevap['url'])){
            foreach($baslik as $deger){
                if ( substr( strtolower($deger), 0, 9 ) == "location:" )
                    return get_url( trim( substr( $deger, 9, strlen($deger) ) ) );
            }
        }
    }
    if (( preg_match("/>[[:space:]]+window.location.replace('(.*)')/i", $content, $deger) || preg_match("/>[[:space:]]+window.location="(.*)"/i", $content, $deger)) && $javascript_dongu < 5){
        return get_url( $deger[1], $javascript_dongu+1 );
    }
    else{
        return array( $content, $cevap );
    }
}

// fonksiyonun kullanımı
echo asil_url("http://trkodlama.com"); // Ekran çıktısı http://www.trkodlama.com olacaktır.

Önceki makalemde HTTP durum kodunu en başarılı nasıl bulabileceğinizi anlatmıştım. O fonksiyon aracılığıyla önce HTTP durum kodunu kontrol edebilirsiniz eğer 301 veya 302 varsa şimdi paylaştığım fonksiyon aracılığıyla yönlendirme sonucu gidilen adresi bulabilirsiniz.

Umarım faydalı olur, birinin işine de yarar.. Kolay gelsin arkadaşlar

TR Kodlama GitHub'da!

TR Kodlama'da yer alan makaleleri GitHub üzerinden düzenleyebileceğinizi biliyor muyudunuz? Harika değil mi? Bu makale ile ilgili düzenleme yapmak isterseniz aşağıdaki butona tıklayınız!

GitHub'da Görüntüle ve Düzenle!