用PHP替换é和e

时间:2010-11-08 17:05:32

标签: php

嘿,这是我在stackoverflow上的第一篇文章。

我正在尝试用e和其他类似的特殊字符替换é。我已经尝试过str_replace()并将其从UTF-8转换为ASCII,但似乎没有任何效果。当我将它从UTF-8转换为任何东西时,它只会将é关掉。当我使用str_replace()时,它永远不会捕获它并且é仍然存在。

我感觉我们的服务器内部出现了问题,因为我的朋友在他的服务器上尝试了str_replace()并且工作正常。

谢谢,

杰森托尔赫斯特

4 个答案:

答案 0 :(得分:7)

$string = iconv('utf-8','ASCII//IGNORE//TRANSLIT',$string);

答案 1 :(得分:4)

您可以使用htmlentities()é转换为é,然后使用正则表达式将&符号后面的第一个字符拉出来。

function RemoveAccents($string) {
    // From http://theserverpages.com/php/manual/en/function.str-replace.php
    $string = htmlentities($string);
    return preg_replace("/&([a-z])[a-z]+;/i", "$1", $string);
}

答案 2 :(得分:2)

请参阅the php manual page for strtr()

此页面上的示例完全符合您的情况。

希望有所帮助。

答案 3 :(得分:0)

基本解决方案

code.replace(/^\s+/gm, '')

用法

const search_this = array('/é/','/è/','/ê/','/ë/','/à/','/ä/','/â/','/ô/','/ö/','/û/','/ü/','/î/','/ï/','/ç/');
const replace_by = array('e','e','e','e','a','a','a','o','o','u','u','i','i','c');