我正在尝试从某些字符串中删除重音符号。我只需要用e,a,i和o替换以下内容:é,á,í和ó。 我花了至少一个小时的谷歌搜索,并尝试了我能找到的每一种方法,其中许多来自这个网站。
我尝试了iconv("utf-8", "ascii//TRANSLIT", $input);
方法,preg_replace
,str_replace
,Wordpress方法和其他一些方法。没有任何内容被替换,或者我得到habláis
变成habl'ais
或habl?is
的结果。
我将列出我尝试过的最后一种方法。如果有人能给我一个有效的方法,我会非常感激。我只需要替换那些愚蠢的4个字符。在这里疯了!
此方法将habláis
变为habl?is
$newstring = strtr(utf8_decode($string), utf8_decode('áéíó'), 'aeio');
答案 0 :(得分:0)
假设你有UTF-8编码(否则,请参阅你问题的评论),我建议你尝试str_replace($needle, $replacement, $haystack)
。此函数接受 needle 和 replacement 的数组,它们可以完美地满足您的需求。
我还没有对此进行过测试,但是以下内容应该有效:
<?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.
?>