PHP file_get_contents에서 올바르지 못한 HTTP response 무시하고 response 받기

| 2014. 10. 29. 09:31

얼마 전에 페이스북 API를 쓰는 법을 포스트한 적이 있는데 생각해보니 잘못된 토큰을 보내는 경우에 대한 에러 체크를 하지 않은 것이 아닌가. 기존에 짜여져 있는 코드를 기반으로 일부러 허가 받지 않은 토큰을 보내고 받은 응답을 적당히 분석해 조건 분기를 만드려던 찰나에 웬걸, 페이스북이 400 Bad Request 헤더를 보내고 PHP에선 그에 대해서 오류를 발생하는 것이 아닌가.

전 세계 코더들의 집단 이성이 모인 스택 오버플로우에서는 PHP 업데이트를 통해 새로 생긴 ignore_errors 옵션을 추가하라는 조언을 주고 있다. 여러 질문들을 읽어본 결과 다양한 옵션을 지원하는 Curl로 대체하라는 이야기가 좀 더 지배적이었지만 여전히 file_get_contents를 사용할 수밖에 없는 ㅡ 나의 경우엔 굳이 코드 수정을 최소화하려는 의도였지만 ㅡ 상황이고 확실히 포맷팅된 응답을 보내는 서버로 보내는 요청이라면 ㅡ 페이스북 API가 괴상한 응답을 보낼 가능성은 적지 않은가 ㅡ 시도해볼 만한 옵션이다.