私はブラウザにいくつかのPHPコードを実行しています。CURLでgz形式のWebページをダウンロードする
google.comのようなURLに移動すると、ドキュメントがここに移動したことがわかります。 。つまり別のGoogleリンクに移動します。
私はcURL
の位置をtrueに設定します。
また、クエリが実際に通過すると、ブラウザはウェブページを.gzファイルにダウンロードします。
助けてください。私はそれをダウンロードしたくありません。私はそれを表示したい。
curl_setopt($ch, CURLOPT_URL, trim("http://".trim($host).$q));
curl_setopt($ch, CURLOPT_PORT, intval(trim($port)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $v);
stackoverflow.comのようなサイトを要求するときにEDIT ::
お使いのブラウザは不正な要求を送りました。 。たとえ4shared.comでも同じことがあります。
HTTPHEADER
の配列はcURL
にあります。
Array
(
[0] => Proxy-Connection: Close
[1] => Cache-Control: max-age=0
[2] => User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1017.2 Safari/535.19
[3] => Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[4] => Accept-Encoding: gzip,deflate,sdch
[5] => Accept-Language: en-US,en;q=0.8
[6] => Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
[7] => Cookie: __qca=P0-9
[8] => Connection: Close
)
これは私が上記で使用したのと同じカールコードです。 CURLOPT_HTTPHEADER
を設定する前に、空の文字列にCURLOPT_ENCODING
を設定してみてください:gzipで問題を解決するための
Host: stackoverflow.com
Q: /questions/tagged/java
WOW!ありがとうございます!できます。しかし、なぜあなたのブラウザが「悪い要求を送った」と言っているのか、あなたは知っていますか? – Blank
@Blankこの問題は、ソリューションを適用した後にのみ発生するか?その場合、cURLは 'Accept-Encoding'ヘッダを2回送信している可能性があります。 'CURLOPT_VERBOSE'を' true'に設定すると、これが本当かどうかを確認できます。そうであれば、最も簡単な解決策は 'HTTPHEADER'配列からヘッダを取り除くことです。もしそうでなければ、ヘッダにはおそらく別の問題があります。何が起こっているのかを見るために、少しずつデバッグする必要があります。 –
コードの前にはありませんでした。あなたのコードはgz形式のウェブページのダウンロードを修正しました。 – Blank