Php Can';不要去掉一些简单的口音

Php Can';不要去掉一些简单的口音,php,Php,我正在尝试删除一些字符串中的重音符号。我只需要用e、a、I和o替换以下内容:é、á、í和ó。 我花了至少一个小时在谷歌上搜索,并尝试了我能找到的每一种方法,其中很多都是从这个网站上找到的 我尝试了iconv(“utf-8”,“ascii//TRANSLIT”,“$input”)方法、preg\u replace、str\u replace、Wordpress方法和其他一些方法。要么什么都不替换,要么我得到一个结果,habláis变成habl'ais或habl?is 我将列出我尝试过的最后一种方法

我正在尝试删除一些字符串中的重音符号。我只需要用e、a、I和o替换以下内容:é、á、í和ó。 我花了至少一个小时在谷歌上搜索,并尝试了我能找到的每一种方法,其中很多都是从这个网站上找到的

我尝试了
iconv(“utf-8”,“ascii//TRANSLIT”,“$input”)
方法、
preg\u replace
str\u replace
、Wordpress方法和其他一些方法。要么什么都不替换,要么我得到一个结果,
habláis
变成
habl'ais
habl?is

我将列出我尝试过的最后一种方法。请,如果有人能给我一个有效的方法,我将不胜感激。我只需要替换那些愚蠢的4个字符。这里疯了

此方法将
habláis
转换为
habl?is

    $newstring = strtr(utf8_decode($string), utf8_decode('áéíó'), 'aeio');

假设您有UTF-8编码(否则,请参考您问题的评论),我建议您尝试一下。此功能可接受针阵列和更换件,它们应能完美满足您的需要

我还没有对此进行测试,但类似于以下的东西应该可以工作:

<?php
$aReplacements = array('a', 'e', 'i', 'o');
$aNeedles = array('á', 'é', 'í', 'ó');

$string = $_GET['please_replace_this_assignment_with_your_string_source'];

$converted = str_replace($aNeedles, $aReplacements, $string); // Swap to non-accented versions

echo $converted; // Just here for testing. Do what you need to do with this variable.

?>

假设您使用UTF-8编码(否则,请参考您问题的注释),我建议您尝试一下。此功能可接受针阵列和更换件,它们应能完美满足您的需要

我还没有对此进行测试,但类似于以下的东西应该可以工作:

<?php
$aReplacements = array('a', 'e', 'i', 'o');
$aNeedles = array('á', 'é', 'í', 'ó');

$string = $_GET['please_replace_this_assignment_with_your_string_source'];

$converted = str_replace($aNeedles, $aReplacements, $string); // Swap to non-accented versions

echo $converted; // Just here for testing. Do what you need to do with this variable.

?>


我不认为您首先有UTF8,我认为您有Windows ISO 1252,这就是您遇到这些问题的原因。使用
iconv
的解决方案工作正常。确保您的源代码是utf-8。我的标题中有以下内容。这还不足以启用UTF8编码吗?抱歉,如果这是一个愚蠢的初学者问题。标题('Content-type:text/html;charset=utf-8');我不认为你一开始就有UTF8,我认为你有Windows ISO 1252,这就是你出现这些问题的原因。使用
iconv
的解决方案很好。确保您的源代码是utf-8。我的标题中有以下内容。这还不足以启用UTF8编码吗?抱歉,如果这是一个愚蠢的初学者问题。标题('Content-type:text/html;charset=utf-8');