얼마전 getSummary에서 공백 압축이 되지 않는 문제를 토로한 적이 있었는데요. https://xetown.com/276260
이번에는 꽤나 큰 자리를 차지하는 이상한 탭이 섞여 나와서 공백 처리가 안 되더라구요.
기진곰님이 알려주신 bin2hex()로 확인해보니, 그냥 탭은 아니고 e38080 으로 나왔어요.
뒤져보니까 태두(抬頭)라는 신기한 공백 문자네요ㄷㄷㄷ 세상은 넓어요~~~
(관련 정보: https://ko.wikipedia.org/wiki/%ED%83%9C%EB%91%90 )
php.net에서 보니 mb_convert_kana()라는 함수로 제어가 가능한 것 같기는 한데, 이건 일본어인 경우에만 해당하는 것 같고...
중국 쪽에서는 이런 경우, hex2bin(str_replace("e38080","",bin2hex($document->getSummary(200)))) 으로 변환, 재변환해서 제거하더군요.
회원들이 여기저기서 긁어다가 복붙 하다보니 이런 경우들이 생깁니다.
일단 요놈도 일전에 잡아놨던 c2a0와 함께
{preg_replace("/\s+/", " ", hex2bin(str_replace(array("c2a0", "e38080"), "20", bin2hex($document->getSummary(200)))))} 으로 처리를 하긴 했습니다.
근데 이건 누가 봐도 점점 안드로메다로 가는 느낌입니다;;;
공백 처리해야 할 유니코드 문자가 더 이상은 안 생기면 좋겠어요.
하지만 이것도 웹마의 숙명이라면 숙명이겠죠? ㅠㅠ
라이믹스의 utf8_normalize_spaces 함수를 참고해서 한꺼번에 처리해 버리세요.
(common/functions.php 참고)