2010-06-28 28 views
5

Cảnh báo: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION không thể kích hoạt khi ở safe_mode hoặc một open_basedir được thiết lập trong /home/path/curl .php trên dòng 594lỗi CURL (CURLOPT_FOLLOWLOCATION không thể được kích hoạt)

Tôi không có quyền truy cập vào php.ini. Điều này có thể được sửa mà không cần chỉnh sửa php.ini không?

Trả lời

3

Xem this comment trong hướng dẫn. Nó cung cấp một giải pháp xấu. Tôi tin rằng hạn chế này là có hiệu lực vì một lỗi trong thư viện curl, nơi nó sẽ theo chuyển hướng đến các nguồn lực địa phương, nhưng điều đó nên được sửa chữa bởi bây giờ, vì vậy tôi thấy không có lý do cho hạn chế này.

+0

Vâng đó là một hack xấu xí chắc chắn, nhưng nó hoạt động - về cơ bản, bạn sẽ phân tích cú pháp tiêu đề phản hồi và chuyển hướng thủ công. – Piskvor

0

safe_mode thuộc về PHP_INI_SYSTEM - vì vậy nếu đó là vấn đề, bạn không may mắn, những mục này chỉ có thể được đặt trong cấu hình php.ini và vhost.

open_basedir thuộc về PHP_INI_ALL, vì vậy bạn có thể đặt trong .htaccess sử dụng php_value.

+0

Tôi có thể bị nhầm lẫn, nhưng tôi nghĩ rằng php_admin_value không thể được đưa vào tệp .htaccess. Có lẽ bạn có nghĩa là php_value? – Artefacto

+0

@Artefacto: Bạn chính xác, cố định. "php_admin_value (...) Điều này không thể được sử dụng trong các tập tin .htaccess." http://php.net/manual/en/configuration.changes.php – Piskvor

0

Điều này được làm việc cho tôi!

 $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); 
} 
Các vấn đề liên quan