我编辑了一个简单的php函数,将字母转换为具有相似外观的同形异义词。
我的代码:
function homographit($string){
$alphabet = array("A", "B", "C", "E", "H", "J", "K", "M", "N", "O", "P", "S", "T", "X", "Y",
"a", "b", "c", "e", "i", "j", "k", "o", "p", "r", "s", "v", "x", "y");
$Greec = array("\u0391", "\u0392", "\u0421", "\u0395", "\u0397", "\u0408", "\u039A", "\u039C", "\u039D", "\u039F", "\u03A1", "\u0405",
"\u03A4", "\u03A7", "\u03A5", "\u0430", "\u042C", "\u0441", "\u0435", "\u0456", "\u0458", "\u03BA", "\u03BF", "\u03C1", "\u0433", "\u0455",
"\u03BD", "\u03C7", "\u0443");
$newstring = str_replace($alphabet, $Greec, $string);
return json_decode('"'.$newstring.'"', true);
}
对于文本字符串,该函数完美无缺。
我的问题:
如何将此homgraphit()应用于html字符串中的所有文本withouwt影响html TAGS? THX
答案 0 :(得分:0)
您可以使用strip_tags
内置的php函数来从字符串中删除HTML和PHP标记。我使用你的homographit
函数测试了代码:
$x = '<span>\u0391</span><b>\u0392</b>';
$x = strip_tags($x);
var_dump(homographit($x));die();
//will print
//string(4) "ΑΒ"
$x = '<span>\u0391</span><b>\u0392</b>';
var_dump(homographit($x));die();
//will print
//string(32) "<ѕρаn>Α</ѕρаn><Ь>Β</Ь>"
希望这可以解决您的问题。
编辑 我发现了这个
$x = '<span>\u0455\u0391</span><b>\u0392</b>';
$convertedString = json_decode('"' . $x . '"');
var_dump($convertedString);
// will print
// string(26) "<span>ѕΑ</span><b>Β</b>"
试试这个
答案 1 :(得分:0)
我用
解决了我的问题preg_replace_callback()