2009-01-09 13 views

cevap

6

Aslında buldum bu en iyi şekilde çalışır:

function GetURL($URL) 
    { 
      $ch = curl_init($URL); 

      curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true); 


      curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 

      curl_exec($ch); 

      $code = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); 

      curl_close($ch); 

      return $code; 
    } 
16
$ch = curl_init('http://www.yahoo.com/'); 
curl_exec($ch); 
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
if (($code == 301) || ($code == 302)) { 
    //This was a redirect 
} 
+0

Cool - nereye yönlendirilmek istediğini söylemenin bir yolu var mı? – GeoffreyF67

+0

Bunun için normal cURL deneyin ... sizi nereye gitmek istediğiniz yere yönlendirmelidir. – alex

+0

Neredeyse tüm olası vakaları kapsayan iyi bir cevap. 303 ve 307 yönlendirme yönlendirmelerinin aynı zamanda daha az yaygın olmasına rağmen inanıyorum. Ben sadece onları gerçek dünyada değil spesifikasyonlarda kullandıklarını gördüm. –

3

genellikle bu soru için verilen cevapların hiçbiri iade belge içinde kodlanmış javascript yol açtığı hesap yönlendirme önünde (veya o hatırlıyor musunuz HTML'de bir meta yenileme etiketi olduğunu düşünüyorum.) Bu nedenle, bu tür kodu kullanarak test ederken belirli türdeki "yönlendirmeler" in ne kaçıracağınız önemli değil.

Maalesef, bunun tek yolu, web sayfasının gerçek bir web tarayıcısına sahip olması ve web tarayıcısının javascript ve meta yenileme yenilemelerini bildirecek şekilde değiştirilmesidir.

Şerefe!

+0

Aslında, mozilla'nın sahip olduğu javascript motorunu şu anda ismini hatırlayamasam da kullanabilirsiniz. Ama evet, bu kıvrımda haklısın javascript yönlendirmesini yakalayamazsın. – GeoffreyF67

İlgili konular