web-dev-qa-db-ja.com

HTTP / 1.1 505HTTPバージョンはサポートされていません

PHPスクリプトを実行してWebページを取得しています。多くのサイトで正常に機能しましたが、1つのサイトで失敗し、「HTTP/1.1 505HTTPバージョンがサポートされていません」というエラーが返されます。 。

これは私のスクリプト(の一部)です:

for($i = 0; $i < 1; $i++) {
    $page = file_get_contents("http://www.lovelybooks.de/stoebern/empfehlung/romantic fantasy/?seite=$i");
    // do something with $page
}

多くの回答では、HTTPバージョンを明示的に設定することを推奨しています。 0.9、1.0、1.1を設定してみましたが、何も変わりませんでした。実際、ヘッダーは、ブラウザーによって要求されたHTTPバージョンとサーバーによって期待されたHTTPバージョンが一致していることを示しているようです。

返信ヘッダー:

HTTP/1.1 200 OK
Date: Mon, 15 Dec 2014 09:01:15 GMT
Server: Apache
X-Powered-By: PHP/5.4.35
Keep-Alive: timeout=2, max=200
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

リクエストヘッダー:

GET /path/script.php HTTP/1.1
Host: www.mydoman.de
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:34.0) Gecko/20100101 Firefox/34.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Authorization: Basic MjQwMjE5Njc6MDcwNjIwMDc=
Connection: keep-alive
Cache-Control: max-age=0

他に何が間違っている可能性がありますか?

10
user1322720

URLのスペースをパーセントエンコードに置き換えます。

    $page = file_get_contents("http://www.lovelybooks.de/stoebern/empfehlung/romantic%20fantasy/?seite=$i");
13
Barmar

URLにスペースを使用しているようです。それは機能しません問題を解決するには、URLを別の変数に入れて、次のようにエンコードします。

$URL = urlencode("http://www.lovelybooks.de/stoebern/empfehlung/romantic fantasy/?seite=".$i);

file_get_contents($URL);
1
Daan