需要更改字符串的大小写 - PHP

时间:2014-09-17 10:25:01

标签: php arrays for-loop case-sensitive

$variable = "test_company_insurance_llc_chennai_limited_w-8tyu.pdf";

我需要在$变量上面显示

Test Company Insurance LLC Chennai Limited W-8TYU.pdf

为此我已经完成了:

$variable = str_replace("_"," ","test_company_insurance_llc_chennai_limited_w-8tyu.pdf");

$test  = explode(" ", $variable);
$countof = count($test);

for ($x=0; $x<$countof; $x++) {

    if($test[$x] == 'w-8tyu' || $test[$x] == 'llc') {
       $test[$x] = strtoupper($test[$x]);
       //todo
    }   

} 

我陷入了待办事项。

我将使用strtoupper将特定单词更改为大写。

稍后,我应该如何合并数组?

任何帮助都会感激...

3 个答案:

答案 0 :(得分:3)

$str_in = "test_company_insurance_llc_chennai_limited_w-8tyu.pdf";
$lst_in = explode("_", $str_in);
$lst_out = array();
foreach ($lst_in as $val) {
    switch($val) {
        case "llc"          : $lst_out[] = strtoupper($val);
                              break;
        case "w-8tyu.pdf"   : $lst_temp = explode('.', $val);
                              $lst_out[] = strtoupper($lst_temp[0]) . "." . $lst_temp[1];
                              break;
        default             : $lst_out[] = ucfirst($val);
    }
}
$str_out = implode(' ', $lst_out);
echo $str_out;

答案 1 :(得分:1)

不是非常优雅,但可能稍微灵活一些。

$v = str_replace("_"," ","test_company_insurance_llc_chennai_limited_w-8tyu.pdf");

$acronyms = array('llc', 'w-8tyu');
$ignores  = array('pdf');

$v = preg_replace_callback('/(?:[^\._\s]+)/', function ($match) use ($acronyms, $ignores) {
    if (in_array($match[0], $ignores)) {
        return $match[0];
    }

    return in_array($match[0], $acronyms) ? strtoupper($match[0]) : ucfirst($match[0]);
}, $v);

echo $v;

如果将扩展名与初始值分开,则可以删除忽略。

答案 2 :(得分:1)

请参阅下面的代码。我已将代码的输出打印为您预期的输出。所以跑吧回复我......

$variable = str_replace("_"," ","test_company_insurance_llc_chennai_limited_w-8tyu.pdf");

$test  = explode(" ", $variable);
$countof = count($test);

for ($x=0; $x<$countof; $x++) {

if($test[$x] == 'llc') {
   $test[$x] = strtoupper($test[$x]);
   //todo
}elseif($test[$x] == 'w-8tyu.pdf'){
  $file=basename($test[$x],'pdf');
  $info = new SplFileInfo($test[$x]);
  $test[$x] = strtoupper($file).$info->getExtension();
}
else{
  $test[$x]=ucfirst($test[$x]);
}
}
echo '<pre>';
print_r($test);
echo '</pre>';
echo $output  = implode(" ", $test);