티스토리 뷰

* 다른 사람이 짜놓은 라이브러리를 가져다가 열심히 코딩하는데 에러가 났다.


[error] PHP Fatal error:  Call to undefined function json_decode() in /var/www/html/example/lib/ApiRestHandler.php on line 147, referer: http://example/open_api.html


: 에러를 해석하자면, json_decode()라는 함수가 정의되지 않았는데 호출이 되었다는 것이다. 위치는 ApiRestHandler.php의 147번째 줄이다.


: 이미 상용화를 하고 있는 문제없는 소스일텐데 에러가 났다. json_decode() 함수가 없다는 것이다. 그럼 라이브러리가 제대로 로드가 안되었거나 버전이 무언가 안맞던가 해서 함수를 찾을 수 없는 것이다.


http://php.net/json_encode


: php.net에 의하면 PHP5.2 이상 버전을 보유하고 있어야하는데, 우리 서버의 php 버전은..?





: 5.1.6버전이다... 그럼 업데이트를 하자.. yum update php





: 잉?! 찾아보니 우리 서버에서 지원하는 최신 정식 버전은 5.1.6이 최신이다. 근데 다른 사람이 짜놓은 라이브러리는 json_decode()를 사용한다. 수동으로 업데이트하려다가 php가 꼬이면 서버 망치니까 그냥 수동으로 json_decode를 따로 구현하기로 했다.


: 여기에 좋은 소스가 있다.


http://code.google.com/p/simplejson-php/


: 여기 소스로 가서 거기 있는 fromJSON을 json_decode()로 toJSON을 json_encode()로 바꾸면 문제없이 활용이 가능하다.


: 뭐, 일단 나의 경우는 잘 돌아갔지만, 이거는 어디까지는 하나의 편법(hack)일 뿐이다. 왠만하면 라이브러리를 고쳐달라고 요청하거나, 서버 OS를 업그레이드하자;



끝.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함