一尘不染

如何从文字中删除变音符号?

php

我正在制作瑞典语网站,瑞典语字母是å,ä和ö。

我需要创建一个用户输入的字符串,以使用PHP进行网址安全。

基本上,需要将所有字符都转换为下划线,除以下字符外:

 A-Z, a-z, 1-9

并且所有瑞典语都应该这样转换:

“å”到“ a”,“ä”到“ a”,“ö”到“ o”(只需删除上面的点)。

正如我所说,其余的应该成为下划线。

我不太擅长使用正则表达式,因此我非常感谢您的帮助!

谢谢

注意:不是URLENCODE …我需要将其存储在数据库中…等等,urlencode对我不起作用。


阅读 372

收藏
2020-05-29

共1个答案

一尘不染

// normalize data (remove accent marks) using PHP's *intl* extension
$data = normalizer_normalize($data);

// replace everything NOT in the sets you specified with an underscore
$data = preg_replace("#[^A-Za-z1-9]#","_", $data);
2020-05-29