0

我想检查用户输入的字符是小写还是大写。如果是小写,我想改成大写。如果是大写,我想改成小写。

<?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];
}
}
}
?>

我执行上面的程序。它将大写字符更改为小写。但它不会将小写字符更改为大写。

我在哪里做错了。解决这个问题。

提前致谢...

4

6 回答 6

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

这可以用作函数:

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

function changecase($str){
  return strtolower($str)^strtoupper($str)^$str;
}
于 2013-08-06T09:07:47.063 回答
2

采用

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

if ( ctype_upper($letter) )
{
   strtolower($letter);
}
else
{
   strtolower($letter);
}
于 2013-08-06T09:04:30.347 回答
2

如果你只能小写或大写:

$result = (strcmp(strtoupper($string),$string))?strtoupper($string):strtolower($string);
于 2013-08-06T09:05:52.097 回答
1

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

应该

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

案件已解决

于 2013-08-06T09:04:34.430 回答
1
<?php
$string=$_POST['string'];
print strtolower($str) ^ strtoupper($str) ^ $str;

我在另一个链接中引用了我们的 stackoverflow 网站……我试过了。它给出了答案……感谢大家的支持……

于 2013-08-06T09:17:13.247 回答
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);
于 2013-08-06T09:18:43.370 回答