2016-09-02 16 views
-1

httpsページコンテンツを取得するためにこのコードを書いたが、私は成功できませんでした。PHP curlとHTTPSサイトのhtmlソースコードを取得

<?php 

    function bot($url) 
    { 
     $header ="Host: tr-tr.facebook.com 
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0\r\n 
Accept: */* 
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 
Accept-Encoding: gzip, deflate, br"; 
     $options = array(
       CURLOPT_URL => $url, 
       CURLOPT_RETURNTRANSFER => TRUE, 
       CURLOPT_PORT => 443, 
       CURLOPT_SSL_VERIFYPEER => true, 
       CURLOPT_SSL_VERIFYHOST => 2, 
       CURLOPT_CAINFO => "C:\\xampp\\htdocs\\curl-ca-bundle.crt", 
       CURLOPT_HTTPHEADER => explode("\r\n",$header) 

      ); 
     $ch = curl_init(); 
     curl_setopt_array($ch, $options); 

     $response = curl_exec($ch); 
     curl_close($ch); 
     return $response; 
    } 
     echo bot("https://tr-tr.facebook.com"); 
    ?> 

私がそのコードを実行すると、それが返されます。 " 0#a jȌ# #.3 j ##u . /#cw @、 q=ߓ K" < ˞#%# t [ d :| [email protected]#$! ( M ߛ#w '#u')私のミスはどこにありますか?これらの文字を返すのはなぜですか?CURLOPT_SSL_VERIFYPEER = false 。私は...

+0

[Brotli](https://github.com/google/brotli)がコード化されているようです。別のエンコーディングをネゴシエートしようとするか、自分でデコードしてみてください。 ['Content-Encoding:br'](https://requestable.pieterhordijk.com/bZd7o) – PeeHaa

+0

アクセプトエンコーディングヘッダーを削除すると、平文https://requestable.pieterhordijk.com/eZd7oが得られます。 gzipをサポートしている場合は、gzipをネゴシエートしてください。なぜなら、サーバはgzipを代わりに提供してくれるからです。 – PeeHaa

+0

はい、動作します。ありがとうございました。 –

答えて

0

たぶん、あなたはCURLOPT_RETURNTRANSFERを削除する必要がありますか、それを適切に扱うカールとハンドシェイクhttpsにしたい。

マニュアル

http://php.net/manual/en/function.curl-setopt.php

から

本当にこれが欲しいですか?

> CURLOPT_RETURNTRANSFER 

> TRUE to return the transfer as a string of the 
> return value of curl_exec() instead of outputting it out directly. 
+0

あなたの答えに感謝します。私はCURLOPT_RETURNTRANSFER = falseを試みましたが、出力は同じです。 curlopt_ssl_verifypeer = falseではなく、httpsをcurlで接続しようとしたことがありますか?なぜ私はこの出力を得るのだろうかと思っていますか? –

+0

それから、 'CURLOPT_VERBOSE'をセットして何が起こるかを見てください。私はまた、圧縮したものかもしれません。 ** Accept ... **ヘッダー全体を削除し、冗長で試してみてください。 – Aleksandar

関連する問題