2011-12-16 12 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

Curlは空のコンテンツを返します。どうすればこの問題を回避できますか? – 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

このコードは、file_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"); 
関連する問題