2016-12-22 11 views
7

私は、次のエラーを取得しています:PHP getimagesize - ストリームを開くことができませんでした。不正なリクエスト

getimagesize(https://static1.squarespace.com/static/570d03d02b8dde8b2642afca/570f74e87c65e4819dec6812/57272dbfb6aa606f78a5d8b5/1470397291105/4XTRYCK3.jpg): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request

画像は、私のブラウザで問題なく開きます。

これはなぜ失敗するのですか?

+0

[この記事を](http://stackoverflow.com/questions/23193870/php-function-getimagesize-gives- https-urlを取得しようとすると、読み取りエラーが発生する) – dpp

+0

これは非常に奇妙です。私はもう一度テストしましたが、今はURLが動作します(HTTPとHTTPSの両方)。しかし、私は別の同様のものを試して、HTTPとHTTPSの両方で同じように再び失敗します。例:https://static1.squarespace.com/static/570d03d02b8dde8b2642afca/570f74e87c65e4819dec6812/57272d96b6aa606f78a5d80a/1470397194245/4XTRYCK2.jpg – alieninlondon

+0

@dppまた、あなたが残念ながら言った投稿の解決方法も同じように失敗するようです。 – alieninlondon

答えて

4

Squarespaceは、User-AgentヘッダーがWebブラウザではない接続を拒否しています。これにはCURLとgetimagesizeが含まれます。

あなたはあなたのコードにこれを挿入することによって、User-Agentヘッダを設定することができます。

ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)'); 
+0

これで問題は解決しました。さらに、サーバーが有効なユーザーエージェントを覚えているかキャッシュしているようです。私が最初にini_setを使わないでgetimagesizeを実行すると、最初にini_setを使ってgetimagesizeを実行すると上のようにブロックされ、それでもやはりini_setをオフにすると、数日/時間で動作します。それが元のエラーに戻るまで)。誰もこれを説明できますか?しかし、重要ではない、ちょうど好奇心。 – alieninlondon

関連する問題