-
[PHP] &#으로 시작하는 한글 문자열 변환하는 법![프로그램]/IT 이야기 2021. 12. 15. 08:40728x90
한글은 참 여러 가지 인코딩 방식이 있는데요
그러다 보니 프로그램을 개발하다 보면
인코딩 된 한글을 디코딩하느라
애를 먹을 때가 많아요
오늘은 바로 한우소갈비 이 문자열!!!
구글에 붙여 넣고 검색하면
바로 변환된 결과를 알 수 있습니다!
그러나 오늘은 PHP 프로그램으로
한글 변환이 필요한 상황!!!
구글링을 통해 해답을 찾았습니다!!
ㅋㅋㅋ
function decodeHtmlEnt($str) { $ret = html_entity_decode($str, ENT_COMPAT, 'UTF-8'); $p2 = -1; for(;;) { $p = strpos($ret, '&#', $p2+1); if ($p === FALSE) break; $p2 = strpos($ret, ';', $p); if ($p2 === FALSE) break; if (substr($ret, $p+2, 1) == 'x') $char = hexdec(substr($ret, $p+3, $p2-$p-3)); else $char = intval(substr($ret, $p+2, $p2-$p-2)); //echo "$char\n"; $newchar = iconv( 'UCS-4', 'UTF-8', chr(($char>>24)&0xFF).chr(($char>>16)&0xFF).chr(($char>>8)&0xFF).chr($char&0xFF) ); //echo "$newchar<$p<$p2<<\n"; $ret = substr_replace($ret, $newchar, $p, 1+$p2-$p); $p2 = $p + strlen($newchar); } return $ret; }
바로 이 함수만 있으면 가능해요!!!
(출처는 하단에 넣었습니다!)
간단하게 테스트해본 결과
아주 변환이 잘 되는 것을 확인할 수 있습니다!!!
여러분들도 많음 도움 되시길 바랄게요!!
참고: https://www.php.net/manual/en/function.html-entity-decode.php#111859
728x90