PHP에서 UCWords 함수는 문자열의 각 단어의 첫 글자를 대문자로 변환하는 데 사용되는 일반적인 방법입니다. 기본 동작은 단어를 공백으로 분리하는 것이지만, 문자열에 구두점 마크 또는 기타 비 알파벳 문자가 포함되어있을 때 UCWords는 이상적인 사례 효과를 달성하지 못할 수 있습니다. 이 기사는 다른 기술과 결합하여 UCWord를 사용하여 공백 및 구두점을 포함하는 긴 문자열을 처리하여보다 정확한 사례 변환을 달성하는 방법을 설명합니다.
ucwords는 공백으로 분리 된 단어의 초기 문자만을 대문자로 만듭니다. 예를 들어:
<?php
$str = "hello world! this is php.";
echo ucwords($str);
?>
산출:
Hello World! This Is Php.
보시다시피, 구두점 마크를 따르는 문자도 올바르게 처리되지만 UCWords는 하이픈이나 아포스트로피와 같은 다른 구두점 마크가 포함 된 경우 자동으로 처리하지 않습니다.
PHP 5.4에서 시작하여 UCWords 함수는 두 번째 매개 변수를 지원하여 단어 분리기로 사용되는 문자를 정의합니다. 예를 들어:
<?php
$str = "jack-o'-lantern's day";
echo ucwords($str, " -'");
?>
산출:
Jack-O'-Lantern'S Day
공간, 하이픈 및 아포스트로피는 여기에 구분 제로 지정되므로 각 구분 기호 후 첫 글자도 대문자로 변환됩니다.
문자열 구조가 복잡하고 ucwords 에만 의존하는 경우 충분히 유연하지 않으면 각 단어의 첫 글자를 일반 표현식과 함께 변환 할 수 있습니다.
<?php
$str = "this is a complex-string, isn't it? yes!";
$callback = function ($matches) {
return strtoupper($matches[1]) . strtolower(substr($matches[0], 1));
};
$result = preg_replace_callback('/\b\w/u', $callback, $str);
echo $result;
?>
산출:
This Is A Complex-String, Isn't It? Yes!
이 코드는 preg_replace_callback을 사용하여 대문자 변환을 위해 각 단어의 첫 글자를 찾는 동시에 소문자가 남은 글자를 보장합니다.
<?php
$str = "welcome to the m66.net-php tutorial, let's learn ucwords!";
echo ucwords($str, " -'");
?>
산출: