2010-06-28 10 views
5

चेतावनी: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION जब सेफ_मोड में सक्रिय नहीं किया जा सकता है या एक open_basedir /घर/path/कर्ल में सेट किया गया है लाइन पर 4 9 4कर्ल त्रुटि (CURLOPT_FOLLOWLOCATION सक्रिय नहीं किया जा सकता है)

मेरे पास php.ini तक पहुंच नहीं है। क्या इसे php.ini संपादित किए बिना तय किया जा सकता है?

उत्तर

3

मैनुअल में this comment देखें। यह एक बदसूरत कामकाज प्रदान करता है। मेरा मानना ​​है कि यह प्रतिबंध कर्ल लाइब्रेरी में एक बग के कारण प्रभावी है जहां यह स्थानीय संसाधनों पर रीडायरेक्ट का पालन करेगा, लेकिन इसे अब तक तय किया जाना चाहिए, इसलिए मुझे इस प्रतिबंध के लिए कोई कारण नहीं दिख रहा है।

+0

वैसे यह निश्चित रूप से एक बदसूरत हैक है, लेकिन यह काम करता है - मूल रूप से, आप प्रतिक्रिया शीर्षकों को पार्स करेंगे और मैन्युअल रूप से रीडायरेक्ट करेंगे। – Piskvor

0

safe_modePHP_INI_SYSTEM से संबंधित है - इसलिए यदि यह समस्या है, तो आप भाग्य से बाहर हैं, इन आइटमों को केवल php.ini और vhost config में सेट किया जा सकता है।

open_basedirPHP_INI_ALL से संबंधित है, तो आप इसे php_value का उपयोग करके .htaccess पर सेट कर सकते हैं।

+0

मुझे गलत हो सकता है, लेकिन मुझे लगता है कि php_admin_value को .htaccess फ़ाइलों में नहीं रखा जा सकता है। शायद आप php_value मतलब है? – Artefacto

+0

@Atetefacto: आप सही, निश्चित हैं। "php_admin_value (...) इसका उपयोग .htaccess फ़ाइलों में नहीं किया जा सकता है।" http://php.net/manual/en/configuration.changes.php – Piskvor

0

यह मेरे लिए काम किया जाता है!

 $ch = curl_init(); 

     $header=array(
      'User-Agent: Mozilla/5.0 (Windows NT 5.2; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0', 
      'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
      'Accept-Language: en-us,en;q=0.5', 
      'Accept-Encoding: gzip,deflate', 
      'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7', 
      'Keep-Alive: 115', 
      'Connection: keep-alive', 
     ); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_REFERER, $url); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.2; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0"); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //Set curl to return the data instead of printing it to the browser. 
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'curl_cookies.txt'); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'curl_cookies.txt'); 
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 

    $data = curl_exec($ch); 


    curl_close($ch); 

    $status = curl_getinfo($curl); 

if ($status['http_code'] == 200) { 
    return $data;  
} else { 
    echo $url; 
    return @file_get_contents($url); 
} 
संबंधित मुद्दे