티스토리 뷰

개발 TIP

PHP 오류해결/ htmlspecialchars null

개발쟝 2018. 11. 17. 16:15

회사에서 이용하는 서버가 php5 버전대였는데, 최근에 7로 버전업을 했다.

테스트 서버에서 확인하는데... 아니 안된다.

한글이 모두 빈 값으로 출력 되길래 단계단계 echo 로 찍었더니

htmlspecialchars 함수를 지나고 나면 값이 null 이 되어 버린다?


PHP 는 공식문서가 잘 되어있으니까~

http://php.net/manual/en/function.htmlspecialchars.php


참고해서 보니까

encoding

An optional argument defining the encoding used when converting characters.

If omitted, the default value of the encoding varies depending on the PHP version in use. In PHP 5.6 and later, the default_charset configuration option is used as the default value. PHP 5.4 and 5.5 will use UTF-8 as the default. Earlier versions of PHP use ISO-8859-1.

이렇단다??

아무튼 null 이 된다는 건 인코딩에 오류인데, 인코딩값 설정해주니까 잘 나옴~~


수정 전

htmlspecialchars($contents);


수정 후

htmlspecialchars($contents, ENT_SUBSTITUTE,'ISO-8859-1');


두번째 들어가는 플래그(ENT_SUBSTITUTE)는 유효하지 않은 코드를 빈 값으로 변환하는 대신 유니코드로 채우는 거란다!

댓글