2013-08-06 46 views
0

我想檢查用戶輸入的字符是小寫還是大寫。 如果是小寫字母,我想換成大寫。 如果是大寫字母,我想更改爲小寫字母。在php中更改大小寫

<?php 
$string=$_POST['string']; 
$arr=str_split($string); 
$arrlen=strlen($string); 
$arrcaps=array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," "); 
$arrsmall=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"," "); 
//print_r($arrsmall); 

for($i=0;$i<$arrlen;$i++) 
{ 
for($j=0;$j<27;$j++) 
{ 
if($arr[$i]==$arrcaps[$j]) 
{ 
echo $arrsmall[$j]; 
} 
} 
for($k=0;$k<27;$k++) 
{ 
if($arr[$i]==$arrsmall[$j]) 
{ 
echo $arrcaps[$j]; 
} 
} 
} 
?> 

我執行上面的程序。它將大寫字符更改爲小寫字母。 但它不會將小寫字母更改爲大寫字母。

我在哪裏犯錯。解決這個問題。

在此先感謝...

+0

你想要所有的章程改爲大寫/小寫?舉一個例子,你想要什麼 –

+1

代碼縮進會很好。 – ciruvan

+1

你可以使用php函數strtolower和strtoupper。 –

回答

1

if($arr[$i]==$arrsmall[$j]) { echo $arrcaps[$j]; }

應該

if($arr[$i]==$arrsmall[$k]) { echo $arrcaps[$k]; }

案件告破

+0

非常感謝...它的工作原理... –

2

使用

bool ctype_upper($string) — Check for uppercase character(s) 

if (ctype_upper($letter)) 
{ 
    strtolower($letter); 
} 
else 
{ 
    strtolower($letter); 
} 
2

如果你只能有小寫或只有大寫:

$result = (strcmp(strtoupper($string),$string))?strtoupper($string):strtolower($string); 
+0

這也是很酷的想法... –

3
$switched = strtolower($string)^strtoupper($string)^$string; 

這可以作爲功能:

echo changecase('a');//A 
echo changecase('A');//a 

function changecase($str){ 
    return strtolower($str)^strtoupper($str)^$str; 
} 
+0

感謝這個很酷的想法... –

1
<?php 
$string=$_POST['string']; 
print strtolower($str)^strtoupper($str)^$str; 

我提到我們的網站計算器在另一個鏈接...我試過這個。它給出了答案... 感謝所有的支持...

+0

@ ironcito的答案的重複 – 2013-08-06 09:21:12

+0

我認爲相同這是我的問題的最佳方式... –

1
$word = "AlPhAbEtIcIsE"; 
$word = strtr(
    $word, 
    array_combine(
     array_merge(range('A','Z'),range('a','z')), 
     array_merge(range('a','z'),range('A','Z')) 
    ) 
); 
var_dump($word); 
+0

感謝您的解決方案... –