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://turk-php.com"); // Ekran çıktısı http://www.turk-php.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. 



Yorumlar

Bu blogdaki popüler yayınlar

Corel Draw Arrange/Organizasyon Menüsü Kullanım Alanları

Corel Draw Effects Menüsü Kullanım Alanları

Corel Draw 10 Üzerinden Kullanım Anahatları - Önemli Bilgiler