Nasıl oldu / örneğin, bir dize karakter harf geçiş takas edebilirsiniz:
$str = "Hello, My Name is Tom";
Ben kodu çalıştırdıktan sonra ben böyle bir sonuç almak:
$newstr = "hELLO, mY nAME Is tOM";
Bu bile mümkün mü?
 
				 
				 
				 
				 
				Ben bir çözüm böyle bir şey kullanmak olabilir varsayalım:
$str = "Hello, My Name is Tom";
$newStr = '';
$length = strlen($str);
for ($i=0 ; $i<$length ; $i++) {
    if ($str[$i] >= 'A' && $str[$i] <= 'Z') {
        $newStr .= strtolower($str[$i]);
    } else if ($str[$i] >= 'a' && $str[$i] <= 'z') {
        $newStr .= strtoupper($str[$i]);
    } else {
        $newStr .= $str[$i];
    }
}
echo $newStr;
Hangi seni alır:
hELLO, mY nAME IS tOM
i.e. you :
Bu varlık sorun muhtemelen :-( aksan gibi özel karakteri ile güzel iş olmaz
And here is a quick proposal that might (or might not) work for some other characters :
$str = "Hello, My Name is Tom";
$newStr = '';
$length = strlen($str);
for ($i=0 ; $i<$length ; $i++) {
    if (strtoupper($str[$i]) == $str[$i]) {
        // Putting to upper case doesn't change the character
        // => it's already in upper case => must be put to lower case
        $newStr .= strtolower($str[$i]);
    } else {
        // Putting to upper changes the character
        // => it's in lower case => must be transformed to upper case
        $newStr .= strtoupper($str[$i]);
    }
}
echo $newStr;
Bir fikir, şimdi, mb_strtolower  and mb_strtoupper  a> kullanmak olacaktır: özel karakterler ile yardım ve multi-byte kodlamaları olabilir ...
 
				Bu soru eski olduğunu biliyorum - ama burada bir multi-byte uygulama benim 2 lezzetleri.
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('/(?<!^)(?!$)/u', $string ); 
}
function mb_is_upper($char) {
   return mb_strtolower($char, "UTF-8") != $char;
}
function mb_flip_case($string) {
   $characters = mb_str_split($string);
   foreach($characters as $key => $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);
}
Tek fonksiyonlu versiyonu:
function mb_flip_case($string) {
    $characters = preg_split('/(?<!^)(?!$)/u', $string );
    foreach($characters as $key => $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);
}