2013-08-06 49 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

感谢您的解决方案... –