2009-01-09 12 views
9

मैंने देखा कि कोई यूआरएल groovy और perl से रीडायरेक्ट करता है या नहीं, लेकिन PHP पर कुछ भी नहीं मिला।मैं कैसे निर्धारित कर सकता हूं कि एक यूआरएल PHP में रीडायरेक्ट करता है या नहीं?

किसी को भी पता है कि मुझे वह कोड मिल सकता है जो यह करता है?

उत्तर

6

वास्तव में, मैंने पाया यह सबसे अच्छा काम करता है:

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

कूल - क्या यह कहने का कोई तरीका है कि वह कहां रीडायरेक्ट करना चाहता है? – GeoffreyF67

+0

इसे सामान्य curl आज़माएं ... इसे आपको निर्देशित करना चाहिए कि वह कहां जाना चाहता है। – alex

+0

अच्छा जवाब, जिसमें लगभग सभी संभावित मामलों को शामिल करना चाहिए। मेरा मानना ​​है कि 303 और 307 रीडायरेक्ट भी बनाते हैं, हालांकि वे बहुत कम आम हैं - मैंने केवल उन्हें वास्तविक दस्तावेज़ों में नहीं बल्कि स्पेक दस्तावेज़ों में उपयोग किया है। –

3

याद है कि उत्तर है कि आमतौर पर इस प्रश्न के लिए दिया जाता है में से कोई भी वापस आ दस्तावेज़ के भीतर इनकोडिंग जावास्क्रिप्ट की वजह से खाता पुनर्निर्देशन में लेने (या मुझे लगता है कि एचटीएमएल में मेटा रीफ्रेश टैग।) तो यह संभव है कि इस तरह के कोड का उपयोग करते समय परीक्षण करते समय आप कुछ प्रकार के "रीडायरेक्ट" को याद करेंगे।

दुर्भाग्यवश इसका एकमात्र तरीका यह है कि एक वास्तविक वेब ब्राउज़र वेब पेज पर क्लिक करता है, और वेब ब्राउजर को ऐसे तरीके से संशोधित किया गया है, जो जावास्क्रिप्ट और मेटा-रीफ्रेश रीडायरेक्शन की रिपोर्ट करता है।

चीयर्स!

+0

असल में, आप जावास्क्रिप्ट इंजन का उपयोग कर सकते हैं जो मोज़िला है हालांकि मुझे इस समय इसका नाम याद नहीं है। लेकिन हाँ, आप उस कर्ल में सही हैं जावास्क्रिप्ट पुनर्निर्देशन नहीं पकड़ेंगे। – GeoffreyF67