반응형
멀티 바이트 문자 인코딩을위한 ucfirst () 함수
나는 strtolower
기능 에 대해 물었다 . 그러나 외국 문자를 사용할 때 대문자로 변환되지 않으므로 다음을 사용해야합니다.
mb_strtolower($a,"utf8");
하지만 ucfirst()
기능 을 사용하려면 어떻게해야합니까? 인코딩 유형을 설정할 수있는 유사한 기능을 찾지 못했습니다.
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;
}
이것은 ucwords
기능 과 다소 유사하지만 더 간결한 솔루션입니다 .
$final_string = mb_convert_case($your_string, MB_CASE_TITLE, 'UTF-8');
한 단어로 구성된 문자열을 대문자로 표시해야하는 경우 가장 좋은 솔루션입니다.
function mb_ucfirst($string)
{
return mb_strtoupper(mb_substr($string, 0, 1)).mb_strtolower(mb_substr($string, 1));
}
if (!function_exists('mb_ucfirst'))
{
function mb_ucfirst($value)
{
return mb_strtoupper(mb_substr($value, 0, 1)) . mb_substr($value, 1);
}
}
웹 페이지에서 cp1250을 사용하고 있으며 Ú mb_ucfirst가 작동하지 않으므로 약간의 업그레이드 :
function mb_ucfirst($string)
{
$main_encoding = "cp1250";
$inner_encoding = "utf-8";
$string = iconv($main_encoding, $inner_encoding , $string );
$strlen = mb_strlen($string);
$firstChar = mb_substr($string, 0, 1, $inner_encoding);
$then = mb_substr($string, 1, $strlen - 1, $inner_encoding);
return $string = iconv($inner_encoding, $main_encoding , mb_strtoupper($firstChar, $inner_encoding) . $then );
}
/*This worked correctly for me*/
function mb_ucfirst($string, $encoding='UTF-8')
{
$firstChar = mb_substr($string, 0, 1, $encoding);
$then = mb_substr($string, 1, mb_strlen($string, $encoding)-1, $encoding);
return mb_strtoupper($firstChar, $encoding) . $then;
}
$string = trim(preg_replace('/\s+/', ' ', $string));
$string_ar = explode(' ', mb_strtolower($string,'utf-8'));
foreach($string_ar as $key => $value {
$string_str .= mb_convert_case(mb_substr(trim($value), 0, 1), MB_CASE_TITLE, 'utf-8')
. mb_substr(trim($value),1)
. ' ';
}
$string = trim($string_str);
ReferenceURL : https://stackoverflow.com/questions/2517947/ucfirst-function-for-multibyte-character-encodings
반응형
'Nice programing' 카테고리의 다른 글
배열을 상수로 선언 할 수 있습니까? (0) | 2020.12.27 |
---|---|
com.android.support:appcompat-v7:22 및 com.android.support:recyclerview-v7:21.1.2를 해결하지 못했습니다. (0) | 2020.12.27 |
link_to : 확인 팝업이 두 번 표시됨 (0) | 2020.12.27 |
MySQL 루트 비밀번호 변경 (0) | 2020.12.27 |
고정 너비 문자열을 왼쪽 정렬하는 방법은 무엇입니까? (0) | 2020.12.27 |