我很难理解什么时候strtr比str_replace更好,反之亦然。 看来可以使用这两个函数来获得完全相同的结果,尽pipe子string被replace的顺序是相反的。 例如: echo strtr('test string', 'st', 'XY')."\n"; echo strtr('test string', array( 's' => 'X', 't' => 'Y', 'st' => 'Z' ))."\n"; echo str_replace(array('s', 't', 'st'), array('X', 'Y', 'Z'), 'test string')."\n"; echo str_replace(array('st', 't', 's'), array('Z', 'Y', 'X'), 'test string'); 这输出 YeXY XYring YeZ Zring YeXY XYring YeZ Zring 除了语法之外,使用它们还有什么好处吗? 任何情况下,不足以达到预期的结果?
我想要做的是从string中删除所有的重音符号和变音符号,将“lärm”变成“andré”和“andre”。 我试图做的是utf8_decodestring,然后使用strtr,但由于我的源文件保存为UTF-8文件,我不能inputISO-8859-15字符的所有变音 – 编辑插入UTF-8字符。 很明显,解决scheme是包含一个ISO-8859-15文件,但是必须有一个更好的方法,而不是另外包含一个? echo strtr(utf8_decode($input), 'ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ', 'SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy'); 更新:也许我有点不准确,我试图做的事情:我实际上并不想删除变音符号,而是用它们最接近的“单字符ASCII”replace它们。