1

我试图在将字符串插入我的数据库之前将其转换为 TitleCase。我正在使用ucwords.

我的字符串是这样的:FIRST_SECOND_THIRD

我的代码:

if (//something){
    $resp = strtolower($line[14]);
    $resp_ = ucwords($resp, "_");

    //rest of the query...

}

var_dump($resp_)返回null,我不知道为什么。

4

2 回答 2

1

这完全一样,希望会有所帮助,干杯。

// php脚本

<?php

    $string = "FIRST_SECOND_THIRD";

    $var = strtolower(str_replace('_',' ',$string)); 
    $temp = ucwords($var);
    echo str_replace(' ', '', $temp);

?>

//output 
FirstSecondThird

如果自定义分隔符适用于 ucwords 函数,工作可能会容易一些。

于 2018-10-11T14:52:37.393 回答
0

如果您的输入字符串完全大写,那么您的意图是使用在字符串开头或下划线后面的strtolower()字母后面的字母。

代码:(演示

echo preg_replace_callback(
         '~(?:^|_)[A-Z]\K[A-Z]+~',
         function($m) {
             return strtolower($m[0]);
         },
         'FIRST_SECOND_THIRD'
     );

输出:

First_Second_Third

更简单,使用mb_convert_case():(演示

echo mb_convert_case('FIRST_SECOND_THIRD', MB_CASE_TITLE, 'UTF-8');
// First_Second_Third
于 2018-12-03T12:22:36.060 回答