Sim*_*mon 57 php character-encoding
我问过strtolower功能.但是当使用外来字符时,它不会将它们转换为大写,所以我必须使用:
mb_strtolower($a,"utf8");
Run Code Online (Sandbox Code Playgroud)
但是,如果我想使用ucfirst()功能,我该怎么办?我没有找到任何类似的功能,我可以设置编码类型.
zne*_*eak 106
没有任何mb_ucfirst功能,正如您已经注意到的那样.你可以伪造一个mb_ucfirst两个mb_substr:
function mb_ucfirst($string, $encoding)
{
$strlen = mb_strlen($string, $encoding);
$firstChar = mb_substr($string, 0, 1, $encoding);
$then = mb_substr($string, 1, $strlen - 1, $encoding);
return mb_strtoupper($firstChar, $encoding) . $then;
}
Run Code Online (Sandbox Code Playgroud)
Ale*_*aev 63
这是更简洁的解决方案,虽然它与ucwords功能非常相似:
$final_string = mb_convert_case($your_string, MB_CASE_TITLE, 'UTF-8');
Run Code Online (Sandbox Code Playgroud)
如果你需要大写字符串由一个单词组成,那么它是最好的解决方案.
Kor*_* M. 18
function mb_ucfirst($string)
{
return mb_strtoupper(mb_substr($string, 0, 1)).mb_strtolower(mb_substr($string, 1));
}
Run Code Online (Sandbox Code Playgroud)
if (!function_exists('mb_ucfirst'))
{
function mb_ucfirst($value)
{
return mb_strtoupper(mb_substr($value, 0, 1)) . mb_substr($value, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
截至 2019 年 11 月 18 日,似乎 stackoverflow 上没有人做到这一点,以下是 mb_ucfirst() 应如何在用户空间中实现:
function mb_ucfirst(string $str, string $encoding = null): string
{
if ($encoding === null) {
$encoding = mb_internal_encoding();
}
return mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding) . mb_substr($str, 1, null, $encoding);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44423 次 |
| 最近记录: |