我试图在将字符串插入我的数据库之前将其转换为 TitleCase。我正在使用ucwords
.
我的字符串是这样的:FIRST_SECOND_THIRD
我的代码:
if (//something){
$resp = strtolower($line[14]);
$resp_ = ucwords($resp, "_");
//rest of the query...
}
var_dump($resp_)
返回null
,我不知道为什么。
我试图在将字符串插入我的数据库之前将其转换为 TitleCase。我正在使用ucwords
.
我的字符串是这样的:FIRST_SECOND_THIRD
我的代码:
if (//something){
$resp = strtolower($line[14]);
$resp_ = ucwords($resp, "_");
//rest of the query...
}
var_dump($resp_)
返回null
,我不知道为什么。
这完全一样,希望会有所帮助,干杯。
// php脚本
<?php
$string = "FIRST_SECOND_THIRD";
$var = strtolower(str_replace('_',' ',$string));
$temp = ucwords($var);
echo str_replace(' ', '', $temp);
?>
//output
FirstSecondThird
如果自定义分隔符适用于 ucwords 函数,工作可能会容易一些。
如果您的输入字符串完全大写,那么您的意图是使用在字符串开头或下划线后面的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