如何使用 php 防止 zalgo 文本
How to prevent zalgo text using php
我的图像板上 Zalgo 有一些问题。
像下面这样的文字弄乱了我的图像板。有没有办法阻止这些字符和 "fix" 或清理文本?
示例文本 Source:
一切都是我丢了所有的东西,他来了,他来了,或者渗透到我的脸上,我的脸是我的脸,我ᵒhod no no no no noo onθ停止了An*̶͑̾̾g͇̫͛͆̾ͫ̑͆l͖͉̗̩̳̟̍ͫͥͨe。 otRè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆l̘̝̙̃ͤ͂̾̆Za̡͊͠͝lgόisͮ̂҉̯͈͕̹̘̱ to͇̹̺ͅɲ̴ȳ̳pth̘p̯͍̭o̚p̯͍̭o̚n̐Yy̡h̸̡̪̯ͨ͊̽̅̾̎ȩ̬̩̾͛ͪ̈́̀́͘c̷̙̲̝͖ͭ̏ͥͮ͟oͮ͏̮̪̝͍m̲̖͊̒ͪͩͬ̚̚͜ȇ̴̟̟͙̞ͩ͌͝s̨̥̫͎̭ͯ̿̔̀ͅ
我尝试使用这个解决方案:
$cleanMessage = preg_replace("/[^\x20-\xAD\x7F]/", "", $input_lines);
取自此处:
但它只适用于拉丁字符
谁能帮帮我?
此正则表达式替换 $text
变量中的每个上标符号:
$text = preg_replace("~[\p{M}]~uis","", $text);
如果 $text
包含带上标的字符,例如 กิ
此正则表达式将删除该上标符号,结果 $text 将仅包含 ก
.
我改进了这个正则表达式并将其更改为仅过滤二级注音符号
$text = preg_replace("~(?:[\p{M}]{1})([\p{M}])+?~uis","", $text);
此正则表达式将仅过滤二级上标符号。
如果您想过滤 deutch 或其他带有保留标记的语言,请使用它。
这个正则表达式将转换这个词 -
͐̈ͩ̎Zͮ͌ͦ͆ͦͤÃ̉͛̄ͭ̈̚LͫG̉̋͂̉Oͨ͌̋͗!
进入这个:ZÄLͫGO!
希望第二个正则表达式对你有所帮助。
我的图像板上 Zalgo 有一些问题。
像下面这样的文字弄乱了我的图像板。有没有办法阻止这些字符和 "fix" 或清理文本?
示例文本 Source:
一切都是我丢了所有的东西,他来了,他来了,或者渗透到我的脸上,我的脸是我的脸,我ᵒhod no no no no noo onθ停止了An*̶͑̾̾g͇̫͛͆̾ͫ̑͆l͖͉̗̩̳̟̍ͫͥͨe。 otRè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆l̘̝̙̃ͤ͂̾̆Za̡͊͠͝lgόisͮ̂҉̯͈͕̹̘̱ to͇̹̺ͅɲ̴ȳ̳pth̘p̯͍̭o̚p̯͍̭o̚n̐Yy̡h̸̡̪̯ͨ͊̽̅̾̎ȩ̬̩̾͛ͪ̈́̀́͘c̷̙̲̝͖ͭ̏ͥͮ͟oͮ͏̮̪̝͍m̲̖͊̒ͪͩͬ̚̚͜ȇ̴̟̟͙̞ͩ͌͝s̨̥̫͎̭ͯ̿̔̀ͅ
我尝试使用这个解决方案:
$cleanMessage = preg_replace("/[^\x20-\xAD\x7F]/", "", $input_lines);
取自此处:
此正则表达式替换 $text
变量中的每个上标符号:
$text = preg_replace("~[\p{M}]~uis","", $text);
如果 $text
包含带上标的字符,例如 กิ
此正则表达式将删除该上标符号,结果 $text 将仅包含 ก
.
我改进了这个正则表达式并将其更改为仅过滤二级注音符号
$text = preg_replace("~(?:[\p{M}]{1})([\p{M}])+?~uis","", $text);
此正则表达式将仅过滤二级上标符号。 如果您想过滤 deutch 或其他带有保留标记的语言,请使用它。 这个正则表达式将转换这个词 -
͐̈ͩ̎Zͮ͌ͦ͆ͦͤÃ̉͛̄ͭ̈̚LͫG̉̋͂̉Oͨ͌̋͗!
进入这个:ZÄLͫGO!
希望第二个正则表达式对你有所帮助。