2011-01-11 12 views
6

मैं कुछ जानकारी एचटीएमएल पेज से बाहर करना चाहता हूं। वर्तमान में मैं इस तरह की समस्या का समाधान:file_get_contents() के लिए समतुल्य फ़ंक्शन?

header("Content-type: text/plain");  
$this->pageSource = file_get_contents ($this->page); 
header("Content-type: text/html"); 

$this->page वेबसाइट के यूआरएल है। यह XAMPP पर ठीक काम करता है, लेकिन जब मैं अपने वेबसर्वर पर मेरी स्क्रिप्ट अपलोड करें, मैं निम्न त्रुटि संदेश मिलता है:

चेतावनी: file_get_contents() [function.file-मिल-सामग्री]: http: // आवरण allow_url_fopen = 0

द्वारा सर्वर कॉन्फ़िगरेशन में अक्षम है तो जाहिर है कि मुझे अपने वेबसर्वर पर उस फ़ंक्शन को निष्पादित करने की अनुमति नहीं है।

तो क्या मेरी समस्या को हल करने के लिए एक समकक्ष कार्य है?

+3

क्या आपने कर्ल की कोशिश की है? –

+0

आप फ़ंक्शन का उपयोग कर सकते हैं, लेकिन यूआरएल के साथ नहीं, केवल स्थानीय फाइलों के साथ, त्रुटि संदेश आपको बताता है। – Tobias

+1

'file_get_contents()' यूआरएल खोलने के लिए इस्तेमाल किया जा सकता है, लेकिन यह टाइमआउट या प्रॉक्सी के पीछे काम नहीं कर सका। –

उत्तर

19

असल में समारोह file_get_contents अक्षम नहीं है,
लेकिन allow_url_fopen अक्षम किया गया है

आप इसे curl

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $this->page); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$this->pageSource = curl_exec($ch); 
curl_close($ch); 

से बदल सकते हैं हालांकि, अगर आप सर्वर ब्लॉक बाहर जाने वाले यातायात, curl भी

मदद नहीं करता है
+0

क्या मैं सामग्री प्राप्त करने के लिए CUrl का उपयोग कर सकता हूं और फिर सरल एचटीएमएल डोम पार्सर का उपयोग करके इसका उपयोग कर सकता हूं? – Silentbang

+0

हां, फ़ंक्शन 'simplexml_load_string' के साथ मिलकर उपयोग करें – ajreal

0

curl का उपयोग करें और डेटा को पुनर्प्राप्त करने के लिए आपको हेडर को सादा पाठ में बदलने की आवश्यकता क्यों है? यदि आप डेटा पुनर्प्राप्त कर रहे हैं तो यह आवश्यक नहीं है।

0

यदि आपके पास कर्ल है, तो इसका उपयोग करें इसके लिए यह बहुत अच्छा है।


      $urlx = 'http://yoururl'; 

      $data="from=$from&to=$to&body=".urlencode($body)."&url=$url"; 
//set post parameters 
      $process = curl_init($urlx); 
//init curl connection 
      curl_setopt($process, CURLOPT_HEADER, 0); 

      curl_setopt($process, CURLOPT_POSTFIELDS, $data); 

      curl_setopt($process, CURLOPT_POST, 1); 

      curl_setopt($process, CURLOPT_RETURNTRANSFER,1); 

      curl_setopt($process,CURLOPT_CONNECTTIMEOUT,1); 

      $resp = curl_exec($process); 
//your content 
      curl_close($process); 

 
संबंधित मुद्दे