Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何返回具有不同大小写组合的多个变量| PHP_Php_Function_Capitalization - Fatal编程技术网

如何返回具有不同大小写组合的多个变量| PHP

如何返回具有不同大小写组合的多个变量| PHP,php,function,capitalization,Php,Function,Capitalization,好的,我会尽量使这件事尽可能简单 我有一个脚本可以在文件中搜索变量$search。 变量$search是用户输入的前两个字母,$user 我想做的是找出$search的两个字母的大小写,然后从这些信息中生成更多的变量 基本布局思想如下: $cap1 = /*the capitalization of $search[0]*/; $cap2 = /*the capitalization of $search[1]*/; if (/*capitalization of $cap1 is UPPER

好的,我会尽量使这件事尽可能简单

我有一个脚本可以在文件中搜索变量
$search
。 变量
$search
是用户输入的前两个字母,
$user

我想做的是找出
$search
的两个字母的大小写,然后从这些信息中生成更多的变量

基本布局思想如下:

$cap1 = /*the capitalization of $search[0]*/;
$cap2 = /*the capitalization of $search[1]*/;

if (/*capitalization of $cap1 is UPPERCASE*/){
    $uncap1 = /*LOWERCASE capitalization of $cap1*/;
} else if (/*capitalization of $cap1 is LOWERCASE*/){
    $uncap1 = /*LOWERCASE capitalization of $cap1*/;
}

if (/*capitalization of $cap2 is UPPERCASE*/){
    $uncap2 = /*LOWERCASE capitalization of $cap2*/;
} else if (/*capitalization of $cap2 is LOWERCASE*/){
    $uncap2 = /*LOWERCASE capitalization of $cap2*/;
}

echo "Original phrase:" . $search . "\n";
echo "New phrase:" . $uncap1 . $uncap2 . "\n";
我想知道如何反向资本化。(我也想知道多行注释是否可以在一行中使用)

我曾考虑只使用str_replace函数,但我懒得把字母表打4次


任何帮助都将不胜感激。:)

使用一些字符串函数,可以实现您似乎需要的功能。我尽量不使用正则表达式,因为字符串函数本身(通常)更有效。在这种情况下,我使用
str_split()
将字符串转换为数组,并使用
strtrtr()
(字符串转换)转换大小写。翻译时使用带有26个字母的副本的两个变量
$lcase
$ucase

下面的函数应该做您需要做的事情,从您的问题的声音来看,您希望反转字符串的大小写。请注意,这也适用于两个以上字符的字符串

function translateCase($str)
{
    $lcase = "abcdefghijklmnopqrstuvwxyz";
    $ucase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $rebuilt = "";
    foreach(str_split($str) as $char) {
        if(strstr($lcase, $char)) {
            $rebuilt .= strtr($char, $lcase, $ucase);
        } else {
            $rebuilt .= strtr($char, $ucase, $lcase);
        }
    }
    return $rebuilt;
}
将函数与示例一起使用

var_dump(translateCase("AA"));
var_dump(translateCase("bb"));
var_dump(translateCase("Jw"));
var_dump(translateCase("rV"));
…将产生以下结果:

string(2) "aa"
string(2) "BB"
string(2) "jW"
string(2) "Rv"

希望有帮助

但是:我看到很多
NULL
s。救命啊!六羟甲基三聚氰胺六甲醚。。。我用
echo
替换了
var\u dump
NULL
s消失了。我想知道为什么?@AlfredPersonMc这很奇怪,使用
echo
var\u dump()
为我生成了类似的字符串结果。