[PHP] 이모지 (Emoji) 문자 삭제 (preg_replace)

하늘 No.339 [컴퓨터] 2 4151
[PHP] 이모지 (Emoji) 문자 삭제 (preg_replace)

이모지 문자와 함께 별도의 특수문자들도 함께 수정
이모지 문자만 삭제하고자 할 경우 $patterns[1] ~ [5], $replacements[1] ~ [5] 등을 주석으로 막은 후 실행


function h_emojiRemove ($ag_str)
{
$rt_str = '';

$emojiChar = '';
$emojiChar .= '\x{1F100}-\x{1F1FF}'; // Enclosed Alphanumeric Supplement
$emojiChar .= '\x{1F300}-\x{1F5FF}'; // Miscellaneous Symbols and Pictographs
$emojiChar .= '\x{1F600}-\x{1F64F}'; // Emoticons
$emojiChar .= '\x{1F680}-\x{1F6FF}'; // Transport And Map Symbols
$emojiChar .= '\x{1F900}-\x{1F9FF}'; // Supplemental Symbols and Pictographs
$emojiChar .= '\x{2600}-\x{26FF}'; // Miscellaneous Symbols
$emojiChar .= '\x{2700}-\x{27BF}'; // Dingbats

$patterns = array();
$patterns[0] = '/['. $emojiChar . ']+/u'; // Emoji
$patterns[1] = '/[[[]/u';
$patterns[2] = '/[]]]/u';
$patterns[3] = '/[""]/u';
$patterns[4] = '/[(c)]/u';
$patterns[5] = '/[**]/u';

$replacements = array();
$replacements[0] = ''; // pattern[0] Emoji
$replacements[1] = '['; // pattern[1] ...
$replacements[2] = ']';
$replacements[3] = '"';
$replacements[4] = '(c)';
$replacements[5] = '*';

$rt_str = preg_replace($patterns, $replacements, $ag_str);
$rt_str = trim ($rt_str);

return $rt_str;
}


// TEST
$orgStr =<<< EMOJISTR
물고기 
이 글은 이모지가 아니므로 살아 남아야 함 : ⓐ*ㅁ◑┬ㅄㅫ㎕ㅣㅏㅓㅑㅐㅜㅠㅍⅣ
이 부분은 모두 없어짐 ---*-/
여기는 : []""[]**
EMOJISTR;

$rtStr = h_emojiRemove ($orgStr);

echo "<PRE>" . PHP_EOL;
echo $orgStr . PHP_EOL;
echo PHP_EOL . PHP_EOL;
echo "-----------" . PHP_EOL;
echo $rtStr . PHP_EOL;
echo "</PRE>" . PHP_EOL;

https://SkyMoon.info/a/HeismeNote/339  

한 편의 영화(映畵)처럼 강(江)이 떠나고 포플러가 자라고 바람과 함께 흐린 날이 왔다 [최돈선-엽서]
  2 Comments
감사합니다 2022.11.11 17:10  
여기저기 찾아다녔는데 이걸로 되네요 감사합니다~^^
하늘 2022.11.11 19:24  
제 게시판에도 적용해 두어서 게시글 내용은 약간 불완전합니다. 첨부파일로 원본 첨부해 두었습니다.
도움이 되셨다니 다행입니다. ^^