2011-12-16 45 views
28

Tôi sử dụng chức năng file_get_contents để nhận và hiển thị các liên kết bên ngoài trên trang cụ thể của mình.Làm thế nào để sử dụng CURL thay vì file_get_contents?

Trong tập tin tất cả những gì địa phương của tôi không quan trọng, nhưng máy chủ của tôi không hỗ trợ file_get_contents chức năng, vì vậy tôi cố gắng sử dụng cURL với mã dưới đây:

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'); 

Nhưng nó trả về một trang trống. Chuyện gì thế?

+3

[curl_error] (http://php.net/manual/en/function.curl-error.php) là gì? –

+2

mã hóa của bạn đang hoạt động, có thể curl không được cài đặt? kiểm tra trong phpinfo() – malletjo

+3

Bạn đang làm không kiểm tra lỗi và sau đó tự hỏi tại sao không có lỗi hiển thị. Đó là .... không khôn ngoan. –

Trả lời

68

thử điều này:

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

Chỉ cần học curl. Đây là lời cảm ơn tuyệt vời! –

+0

Đó là một giải pháp rõ ràng cảm ơn. –

+0

Curl trả về nội dung rỗng .. làm thế nào tôi có thể tránh điều này? – 151291

8

này nên làm việc

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

Mã này sẽ không hoạt động chính xác như file_get_contents. Mã của bạn sẽ không theo các chuyển hướng, file_get_contents thực hiện điều đó. –

1

// Bạn có thể thử này. Nó sẽ hoạt động tốt.

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