Switch character case, php

后端 未结 9 877
难免孤独
难免孤独 2020-12-05 11:48

How can I swap around / toggle the case of the characters in a string, for example:

$str = \"Hello, My Name is Tom\";

After I run the code

9条回答
  •  难免孤独
    2020-12-05 12:25

    I know this question is old - but here's my 2 flavours of a multi-byte implementation.

    Multi function version: (mb_str_split function found here):

    function mb_str_split( $string ) { 
       # Split at all position not after the start: ^ 
       # and not before the end: $ 
       return preg_split('/(? $character) {
           if(mb_is_upper($character))
               $character = mb_strtolower($character, 'UTF-8');
           else
               $character = mb_strtoupper($character, 'UTF-8');
    
           $characters[$key] = $character;
       }
       return implode('',$characters);
    }
    

    Single function version:

    function mb_flip_case($string) {
        $characters = preg_split('/(? $character) {
            if(mb_strtolower($character, "UTF-8") != $character)
                $character = mb_strtolower($character, 'UTF-8');
            else
                $character = mb_strtoupper($character, 'UTF-8');
    
            $characters[$key] = $character;
        }
        return implode('',$characters);
    }
    

提交回复
热议问题