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
Yorum Gönder