2011-12-16 11 views
28

मैं अपने विशिष्ट पृष्ठ पर बाहरी लिंक प्राप्त करने और दिखाने के लिए file_get_contents फ़ंक्शन का उपयोग करता हूं।file_get_contents के बजाय CURL का उपयोग कैसे करें?

अपने स्थानीय फ़ाइल सब कुछ ठीक है, लेकिन अपने सर्वर file_get_contents समारोह का समर्थन नहीं करता, तो मैं नीचे दिए गए कोड के साथ cURL का उपयोग करने की कोशिश की:

function file_get_contents_curl($url) { 
    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_URL, $url); 

    $data = curl_exec($ch); 
    curl_close($ch); 

    return $data; 
} 

echo file_get_contents_curl('http://google.com'); 

लेकिन यह एक रिक्त पृष्ठ वापस आती है। गलत क्या है?

+3

[curl_error] (http://php.net/manual/en/function.curl-error.php) क्या कहता है? –

+2

आपका कोडिंग काम कर रहा है, शायद कर्ल स्थापित नहीं है? phpinfo में जांचें() – malletjo

+3

आप कोई त्रुटि जांच नहीं कर रहे हैं और फिर सोच रहे हैं कि कोई त्रुटि क्यों दिखाई नहीं दे रही है। वह .... मूर्ख है। –

उत्तर

68

कोशिश यह:

function file_get_contents_curl($url) { 
    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);  

    $data = curl_exec($ch); 
    curl_close($ch); 

    return $data; 
} 
+1

बस कर्ल सीखना। यह बहुत बढ़िया धन्यवाद है! –

+0

यह एक स्पष्ट समाधान धन्यवाद है। –

+0

कर्ल खाली सामग्री देता है .. मैं इससे कैसे बच सकता हूं? – 151291

8

यह

function curl_load($url){ 
    curl_setopt($ch=curl_init(), CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $response = curl_exec($ch); 
    curl_close($ch); 
    return $response; 
} 

$url = "http://www.google.com"; 
echo curl_load($url); 
+2

यह कोड फ़ाइल_get_contents की तरह व्यवहार नहीं करेगा। आपका कोड रीडायरेक्ट का पालन नहीं करेगा, file_get_contents ऐसा करता है। –

1

काम करना चाहिए // आप इस कोशिश कर सकते हैं। यह ठीक काम करना चाहिए।

function curl_tt($url){ 

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 3);  
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
$data = curl_exec($ch); 
curl_close($ch); 

return $data; 
} 
echo curl_tt("https://google.com"); 
संबंधित मुद्दे