How to remove diacritics from text?

前端 未结 9 1683
余生分开走
余生分开走 2020-11-29 04:56

I am making a swedish website, and swedish letters are å, ä, and ö.

I need to make a string entered by a user to become url-safe with PHP.

Basically, need to

9条回答
  •  星月不相逢
    2020-11-29 05:12

    If intl php extension is enabled, you can use Transliterator like this :

    protected function removeDiacritics($string)
    {
        $transliterator = \Transliterator::create('NFD; [:Nonspacing Mark:] Remove; NFC;');
        return $transliterator->transliterate($string);
    }
    

    To remove other special chars (not diacritics only like 'æ')

    protected function removeDiacritics($string)
    {
        $transliterator = \Transliterator::createFromRules(
            ':: Any-Latin; :: Latin-ASCII; :: NFD; :: [:Nonspacing Mark:] Remove; :: NFC;',
            \Transliterator::FORWARD
        );
        return $transliterator->transliterate($string);
    }
    

提交回复
热议问题