2017-10-31 21 views
0

PHPとCurlを使用してhttps weburl(https://www.g2crowd.com)をダウンロードしようとしていますが、機能していません。ここでは単純なカールとそれ以外の先進的なカールがあります悲しいことはありません。 :(PHP CurlとHTTPSが機能しない

// connect via SSL, but don't check cert 
$ch=curl_init('https://www.g2crowd.com'); 
curl_setopt ($ch, CURLOPT_CAINFO, "cacert.pem"); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); 

$content = curl_exec($ch); 

echo $content; // show target page 
$ckfile = tempnam ("/tmp", 'cookiename'); 

$url='https://www.g2crowd.com/'; 
//$url='https://www.google.com'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $ckfile); 

curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$headers = [ 
'Host: www.g2crowd.com', 
'User-Agent: Mozilla/5.0 (Windows NT 6.1; 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'  
]; 
curl_setopt($ch, CURLOPT_CAINFO, 'C:\Users\ivan\Downloads\cacert.pem'); 

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_REFERER, "https://www.g2crowd.com/users/c190d528-ab02-4cb5-8467-9362ceaec290"); 

curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

$server_output = curl_exec ($ch); 
if(curl_error($ch)) 
{ 
    echo curl_error($ch); 
} 
else { 
    echo 'eureka!'; 
} 

curl_close ($ch); 

私はHERESにエラーが何であるかカールエラーをキャプチャしてみました:

1407742E:SSLルーチン:SSL23_GET_SERVER_HELLO:TLSv1の警告プロトコルバージョン

私の知恵の最後には本当にイムを助けてください!

ありがとうございました!!

+2

どこで(と何に)は、 '$ i'設定されていますか? (行18を参照してください) – cHao

+0

ちょっとcHao良い点!それは私がそれを設定したり、そのパラメータを削除しても - それはまだエラーを返します。 –

答えて

1

あなたopensslプログラムは。私もOSX版のネイティブでこれを見てきた古くなっています。あなたがいる場合には、O n Macの場合、別のopensslをダウンロードする必要があります。または、SSLを0で開くと、SSLなしで開いたことを意味します。

$url='https://www.g2crowd.com/'; 

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

$server_output = curl_exec($ch); 

curl_close($ch); 

問題が解決しない場合は、試してみてください:これはあなたの問題を解決する必要があり

+0

フォーブスは本当にありがとうございます。 Zend Studio 13のIDE phpデバッガをWindows 7マシンで使用しています。このOpenSSLは私がWindowsにインストールしたり、php.iniなどを修正するために必要なプログラムですか?私もWampがインストールされている、私はWampのローカルPHPサーバー上でスクリプトを実行しようとする必要がありますか? –

0

$url='https://www.g2crowd.com/'; 
$server_output = file_get_contents($url); 
+0

困ったことにBen!それはちょうど私のPHPデバッガかもしれませんが、動作していない、私はあなたがそれを試したと仮定し、それはあなたのために働いた?あなたがそれを試してそれがうまくいくなら私に教えてください。 –

+0

@IvanSimic PHP(または少なくともSSLライブラリ)をセットアップする方法は、ほぼ確実です。しかし、それは遠隔で解決するのが難しいです。一般的に、私がカールをかけると、多くの病気が治されます。私が提供した2番目のオプションを試してみてくださいそれはトリックを行うかもしれない。 –

+0

私はWampサーバーで試してみましたが、今度は別のカールエラーがありました: "SSL SSL証明書"を解決するためのグーグルで、Wampサーバーで試してみました。 このコードを追加すると、curl_setopt($ ch、CURLOPT_CAINFO、 'C:\ Users \ ivan \ Downloads \ cacert.pem'); –

関連する問題