2011-05-30 19 views
6

file_get_contents() के लिए कम यूआरएल के लिए डेटा नहीं पढ़ता उदाहरण:file_get_contents() लघु यूआरएल

  • http://wp.me/pbZy8-1WM,
  • http://bit.ly/

d00E2C कृपया मुझे संभाल इस में मदद करते हैं। या उपरोक्त लिंक को संभालने के लिए कोई कर्ल फ़ंक्शन है?

+0

आपने इस कर्ल को क्यों टैग किया? – erisco

+0

@erisco अगर आप का उपयोग 'एक यूआरएल के साथ file_get_contents', यह डेटा –

+0

http://php.net/manual/en/wrappers.http.php HTTP अंतरण का समर्थन कर रहे के अनुसार प्राप्त करने के लिए कर्ल को defers। – erisco

उत्तर

6

यह सामान्य कार्यों में ठीक करना चाहिए। आप इसे सही काम नहीं करता तो आप स्पष्ट रूप से एक धारा संदर्भ का उपयोग कर सकते हैं:

$url = "http://bit.ly/d00E2C"; 
$context = stream_context_create(array('http' => array('max_redirects' => 5))); 
$val = file_get_contents($url, false, $context); 

यह करना चाहिए। इसके लिए कर्ल को छूने की जरूरत नहीं है।

+0

मैंने 'max_redirects 'का अपना योगदान चुरा लिया ... सुनिश्चित नहीं है कि मैं इसके बारे में कैसा महसूस करता हूं। क्या आप स्टैक ओवरफ्लो पर उत्तर विलय कर सकते हैं? – erisco

+0

हेहे। मुझे वोट दो और हम इसे भी बुलाएंगे। – Femi

+0

यह एक अजीब व्यापार है, लेकिन ठीक है। – erisco

1

तुम क्या करते CURLOPT_FOLLOWLOCATION सही पर सेट होने के साथ कर्ल उपयोग कर रहा है कर सकते हैं:

$ch = curl_init("http://bit.ly/d00E2C"); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
$result = curl_exec($ch); 
curl_close($ch); 

echo $result; 
4

मेरी मशीन पर, मैं आपकी समस्या को दोहराने नहीं कर सकते; मुझे इच्छित पृष्ठ प्राप्त होता है। हालांकि, समस्या को पुनर्निर्देशन के साथ होना चाहिए, इससे आपकी समस्या हल हो सकती है।

<?php 
$opts = array(
    'http' => array(
     'follow_location' => 1, 
     'max_redirects' => 20 
    ) 
); 
$context = stream_context_create($opts); 
echo file_get_contents('http://wp.me/pbZy8-1WM', false, $context); 

मुझे लगता है कि एक निर्देश हो सकता है जो निम्नलिखित के बाद रीडायरेक्ट टॉगल करता है, लेकिन मुझे अभी तक यह नहीं मिला है। मैं अपने जवाब संपादित करेंगे आई