2016-12-22 6 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- read-error-when-get-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 헤더가 웹 브라우저가 아닌 모든 연결을 거부합니다. 여기에는 CURL 및 getimagesize가 포함됩니다.

당신은 당신의 코드에이를 삽입하여 사용자 에이전트 헤더를 설정할 수 있습니다

:

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

내 문제가 해결되었습니다! 또한 서버가 유효한 사용자 에이전트를 기억/캐싱하는 것으로 보입니다. 내가 처음에 ini_set을 사용하지 않고 getimagesize를 실행하면 위와 같이 블록을 실행해야합니다. 위의 ini_set으로 getimagesize를 실행하면 마지막으로 재미있는 점이 ini_set을 다시 해제해도 몇 일/시간 동안 작동하지 않습니다 (notimages/not hours). 원본 오류로 되돌아 갈 때까지). 아무도 이것을 설명 할 수 있습니까? 그래도 중요하지 않은, 단지 호기심. – alieninlondon