我想将文本字符串裁剪为三个字符。这样做,使用起来$name_short = substr($name, 0, 3);效果很好。但是,如果文本的前三个字符中包含德语变音符号,如 \xc3\xa4、\xc3\xb6 或 \xc3\xbc,则W\xc3\xbcrzburg例如会缩写为W&u。使用$name_short = substr(html_entity_decode($name), 0, 3);效果很好并保留变音符号,但结果不是W\xc3\xbcr(对于 W\xc3\xbcrzburg),而是W\xc3\xbc。我不知道如何正确地if/else我的代码来检查前三个字符中是否存在元音变音或来自其他语言的其他特殊字符。
因此,如果找到特殊字符,我可以将字符串裁剪为 4 个字符,否则裁剪为 3 个字符。
\n\n这使它工作:
\n\n$name = html_entity_decode($name);\n$name_short = mb_substr($name, 0, 3);\nRun Code Online (Sandbox Code Playgroud)\n\n感谢您的帮助!
\n尝试使用 mb_substr() 而不是 substr(),如下所示:
\n\n\n\n $name = "W\xc3\xbcrzburg";\n $name_short = mb_substr($name, 0, 3);\n\n\n