php

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

Post Author: Oral ÜNAL

Web geliştirmeyi başta meslek olarak hayal eden fakat daha sonra bir hobi haline getiren birisiyim işte.

Yorum yazma sırası sizde!