2013-02-10 17 views
8

लौट रहे हैं शायद मैं इस पर बहुत लंबे समय से देख रहा हूं लेकिन फाइल_get_contents यहां झूठी वापसी क्यों करेंगे, मैंने यूआरएल काट और पेस्ट किया है और यह ठीक काम करता है?PHP file_get_contents झूठी

 $url = "http://jobs.github.com/positions.json?search=" . $as_any . "&location=" .  $location; 
    // URL contains http://jobs.github.com/positions.json?search=Project Manager&location=London 
    var_dump($url); 
    $json = file_get_contents($url); 
    var_dump($json); 
    $results = json_decode($json, TRUE); 
    var_dump($results); 
    exit; 

धन्यवाद

मार्क

संपादित करें:

मैं और इसके निश्चित रूप से पर allow_url_fopen के लिए जांच की है।

+0

संभावित डुप्लिकेट [यूआरएल से फ़ाइल \ _get \ _ सामग्री या रिवर्स जियो कोडिंग में समस्या का उपयोग कर सामग्री/फ़ाइलों को प्राप्त करने में समस्या] (http://stackoverflow.com/questions/6954220/problem-in-getting-contents-files-using -फाइल-प्राप्त-सामग्री-से-url-or-problem-i) – mario

+0

इस प्रश्न पर कोई भी उत्तर लागू नहीं होता है। – Barmar

उत्तर

7

इस प्रयास करें:

$query = http_build_query(array('search'=>$as_any, 'location'=>$location)); 
$url = "http://jobs.github.com/positions.json?" . $query; 

समस्या यह है कि आप यूआरएल-एन्कोडिंग खोज पद है, जो एक स्थान शामिल नहीं थे। अनुरोध सर्वर से 400 त्रुटि लौटा रहा था, अगर आपने त्रुटि रिपोर्टिंग सक्षम की है तो आपने देखा होगा।

+0

संक्षेप में, मैं तुमसे प्यार करता हूँ..मैंने $ url = urlencode (....) करने का प्रयास किया लेकिन यह काम नहीं लग रहा था, क्या अंतर है? –

+1

वह यूआरएल में सभी डेलीमीटर पात्रों को एन्कोड करेगा, इसलिए उन्हें डिलीमीटर के रूप में पहचाना नहीं जाएगा। – Barmar

+0

गोचा, मेरी मदद करने के लिए धन्यवाद! –

7

आप अपने php.ini

http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

प्रलेखन से में allow_url_fopen सक्षम करने की आवश्यकता हो सकता है:

यह विकल्प यूआरएल अवगत fopen रैपर की तरह यूआरएल वस्तु तक पहुँचने सक्षम सक्षम बनाता है फ़ाइलें।

आपका सर्वर आपको file_get_contents का उपयोग करके किसी URL पर स्थित फ़ाइल खोलने से रोक सकता है।

+0

वर्तमान में /etc/php.ini में allow_url_fopen = –

+0

पर फ़ाइल_get_contents() झूठी लौट रही है तो यह फ़ाइल को नहीं पढ़ सका। यदि मान न्यूल है तो फ़ंक्शन स्वयं अक्षम है। –