我有以下将å,ø,æ....等全部替换为_的代码。
$string = strtolower($string);
$regexp = '/( |å|ø|æ|Å|Ø|Æ|Ã¥|ø|æ|Ã…|Ø|Æ)/iU';
$replace_char = '_';
$data = preg_replace($regexp, $replace_char, $string);
Run Code Online (Sandbox Code Playgroud)
现在,我想根据以下内容将它们更改为。
更换,
_的空间
å,Å,Ã¥和Ã…到
ø,Ø,Ã和Ã〜¸到o,
æ,Æ,Ã和Ã至e。
我可以将str_replace与array一起使用吗?如果是,该怎么办?
还是我必须重复相同的正则表达式三遍?
谁能告诉我更好的代码编写方式?
- 编辑 -
恳求此刻忽略编码。我现在不询问有关编码的建议。
我在这里问编码问题。挪威文字问题
我会使用strtr您可以传递一个映射:
$mapping = array(
'å' => 'a', 'Å' => 'a', 'Ã¥' => 'a', 'Ã…' => 'a',
'ø' => 'o', 'Ø' => 'o', 'Ã' => 'o', 'Ø' => 'o',
'æ' => 'e', 'Æ' => 'e', 'æ' => 'e', 'Æ' => 'e'
);
$str = strtr($str, $mapping);
Run Code Online (Sandbox Code Playgroud)
但是您应该宁愿先解决编码问题。因为这样您可以将音译与一起使用iconv:
$str = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $str);
Run Code Online (Sandbox Code Playgroud)