检测字符串的大小写并将其应用于PHP中的另一个字符串

时间:2011-03-16 12:50:17

标签: php string

正如标题所示,我正在尝试检测字符串的大小写并将相同的格式应用于新字符串。

例:
Yellow cheese>>>检测到它只是大写的第一个字符>>>将blue cheese更改为Blue cheese

这可能吗?

2 个答案:

答案 0 :(得分:3)

取决于您需要算法的智能程度。一个简单的可能就是:

<?php
$v1 = "Yellow cheese";
$v2 = "blue cheese";
$out = "";
for($i = 0; $i < max(strlen($v1), strlen($v2)); $i++) {
  if($v1[i] === strtoupper($v1[i])) {
    $out .= strtoupper($v2[i]);
  } else {
    $out .= strtolower($v2[i]);
  }
}

这样做会非常盲目,所以

  YelLoW ChEEse
> BluE CHEsSE

答案 1 :(得分:2)

你可以尝试:

$ref = 'Yellow cheese';
$str = 'blue cheese';
$ref_words = explode(' ', $ref);
$str_words = explode(' ', $str);
for($i=0; $i<count($ref_words); $i++) {
    if (preg_match('/^[A-Z]/', $ref_words[$i])) {
        $str_words[$i] = ucfirst($str_words[$i]);
    }
}
$res = implode(' ', $str_words);
echo $res,"\n";

<强>输出:

Blue cheese