我试图用正常替换替换重音字符.以下是我目前正在做的事情.
$string = "Éric Cantona";
$strict = strtolower($string);
echo "After Lower: ".$strict;
$patterns[0] = '/[á|â|à|å|ä]/';
$patterns[1] = '/[ð|é|ê|è|ë]/';
$patterns[2] = '/[í|î|ì|ï]/';
$patterns[3] = '/[ó|ô|ò|ø|õ|ö]/';
$patterns[4] = '/[ú|û|ù|ü]/';
$patterns[5] = '/æ/';
$patterns[6] = '/ç/';
$patterns[7] = '/ß/';
$replacements[0] = 'a';
$replacements[1] = 'e';
$replacements[2] = 'i';
$replacements[3] = 'o';
$replacements[4] = 'u';
$replacements[5] = 'ae';
$replacements[6] = 'c';
$replacements[7] = 'ss';
$strict = preg_replace($patterns, $replacements, $strict);
echo "Final: ".$strict;
Run Code Online (Sandbox Code Playgroud)
这给了我:
After Lower: éric cantona
Final: ric cantona
Run Code Online (Sandbox Code Playgroud)
上面给了我ric cantona我想要的输出 …
可能吗?这是我的输入字符串:
? š ? ? ž ý á í é ? Á Ž Ý
Run Code Online (Sandbox Code Playgroud)
这是我想要的输出:
l s c t z y a i e C A Z Y
Run Code Online (Sandbox Code Playgroud) 无论如何要制作一个忽略重音的正则表达式?
例如:
preg_replace("/$word/i", "<b>$word</b>", $str);
Run Code Online (Sandbox Code Playgroud)
正则表达式中的"i"是忽略区分大小写,但无论如何要匹配,例如
java与Jávã?
我确实尝试制作$ str的副本,将内容更改为无重音字符串并找到所有出现的索引.但是2个字符串的索引似乎是不同的,即使它只是没有重音符号.
(我做了一项研究,但我所能找到的是如何从字符串中删除重音)
我需要帮助改变从剪贴板复制和粘贴的字符串的编码...
好奇的字符串是"español":
$problematicString = "espan?ol"; //copied and pasted from a filename
$okString = "español"; //typed
echo md5($problematicString)."<br>";
echo md5($okString)."<br>";
Run Code Online (Sandbox Code Playgroud)
这是输出:
c9ae1d88242473e112ede8df2bdd6802
5d971adb0ba260af6a126a2ade4dd133
Run Code Online (Sandbox Code Playgroud)
为什么md5()相同字符串的输出不同?
我尝试使用以下方法更改两个字符串:mb_convert_encoding($string, "ISO-8859-1", "UTF-8")但输出仍然不同.
我需要以编程方式修复problematicString,以便它显示与其他字符串相同的哈希