一尘不染

PHP:用UTF-8字符串中最接近的7位ASCII等效字符替换变音符号

php

我要做的是从字符串中删除所有重音符号和变音符号,将“lärm”变成“ larm”,或者将“andré”变成“
andre”。我试图做的是先对字符串进行utf8_decode,然后在其上使用strtr,但是由于我的源文件另存为UTF-8文件,因此我无法输入所有变音符号的ISO-8859-15字符-
编辑器将插入UTF-8字符。

显然,解决方案是拥有一个包含ISO-8859-15文件的包含文件,但是有比包含另一个所需包含文件更好的方法吗?

echo strtr(utf8_decode($input), 
           'ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ',
           'SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy');

更新: 也许我对尝试做的事情有点不准确:我实际上并不是要删除变音符号,而是将其替换为最接近的“一个字符ASCII”。


阅读 280

收藏
2020-05-26

共1个答案

一尘不染

iconv(“utf-8”,”ascii//TRANSLIT”,$input);

2020-05-26