space和“-”之间的大写单词如何
How uppercase words with space and "-" between
我想用
更改字符串
hello teSt woRld hEllo-woRld
到
Hello Test World Hello-World
我做了一些事情,只观察单词之间的空格。
但我需要它用于空格和“-”之间。谁能告诉我如何实现它?
$words = explode(" ", $string);
foreach ( $words as $key=>$value ) {
$new .= mb_strtoupper( mb_substr( mb_strtolower( $value) , 0, 1, 'UTF-8'), 'UTF-8' ) .
mb_substr(mb_strtolower( $value ), 1, null, 'UTF-8') . ' ';
}
你应该尝试这样的事情:
$string = "hello teSt woRld hEllo-woRld";
echo ucwords(strtolower($string), " -");
ucwords
函数的第二个参数是单词分隔符。在这种情况下,单词用 space 或连字符分隔。
结果将是:
Hello Test World Hello-World
如果您担心保留 UTF-8 格式,您应该考虑使用 mb_convert_case
函数,如下例所示:
$str = "mary had a Little lamb and she loved it so";
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Display: Mary Had A Little Lamb And She Loved It So
您也可以使用正则表达式
$str = 'hello teSt woRld hEllo-woRld';
$str = strtolower($str);
$line = preg_replace_callback(
'(^\w|\s\w|\-\w)',
function ($matches) {
return strtoupper($matches[0]);
},
$str
);
echo $line;
我想用
更改字符串hello teSt woRld hEllo-woRld
到
Hello Test World Hello-World
我做了一些事情,只观察单词之间的空格。 但我需要它用于空格和“-”之间。谁能告诉我如何实现它?
$words = explode(" ", $string);
foreach ( $words as $key=>$value ) {
$new .= mb_strtoupper( mb_substr( mb_strtolower( $value) , 0, 1, 'UTF-8'), 'UTF-8' ) .
mb_substr(mb_strtolower( $value ), 1, null, 'UTF-8') . ' ';
}
你应该尝试这样的事情:
$string = "hello teSt woRld hEllo-woRld";
echo ucwords(strtolower($string), " -");
ucwords
函数的第二个参数是单词分隔符。在这种情况下,单词用 space 或连字符分隔。
结果将是:
Hello Test World Hello-World
如果您担心保留 UTF-8 格式,您应该考虑使用 mb_convert_case
函数,如下例所示:
$str = "mary had a Little lamb and she loved it so";
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Display: Mary Had A Little Lamb And She Loved It So
您也可以使用正则表达式
$str = 'hello teSt woRld hEllo-woRld';
$str = strtolower($str);
$line = preg_replace_callback(
'(^\w|\s\w|\-\w)',
function ($matches) {
return strtoupper($matches[0]);
},
$str
);
echo $line;