mb_convert_case 함수는 문자열의 문자를 지정된 상단 및 소문자로 변환 할 수 있으며 세 가지 모드를 지원합니다.
MB_CASE_UPPER : 모든 대문자로 변환하십시오.
MB_CASE_LOWER : 모든 소문자로 변환합니다.
MB_CASE_TITLE : 각 단어의 첫 글자를 대문자로 변환하고 나머지는 소문자로 변환합니다.
샘플 코드 :
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"hello world! 안녕하세요,세계!"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, MB_CASE_UPPER, </span><span><span class="hljs-string">"UTF-8"</span></span><span>); </span><span><span class="hljs-comment">// 산출:HELLO WORLD! 안녕하세요,세계!</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, MB_CASE_LOWER, </span><span><span class="hljs-string">"UTF-8"</span></span><span>); </span><span><span class="hljs-comment">// 산출:hello world! 안녕하세요,세계!</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, MB_CASE_TITLE, </span><span><span class="hljs-string">"UTF-8"</span></span><span>); </span><span><span class="hljs-comment">// 산출:Hello World! 안녕하세요,세계!</span></span><span>
</span></span>정규 표현식 (Regex)은 강력한 문자열 패턴 일치 도구입니다. 복잡한 문자열 변환을 처리 할 때 정규 표현식을 사용하면 특정 단어, 문자 또는 기호와 같이 변환 해야하는 부분을 정확하게 찾아서 이러한 부분을 케이스로 변환하는 데 도움이 될 수 있습니다.
정규 표현식을 통해 일부 규칙을 정의하고 MB_Convert_case를 결합하여 일치하는 부품을 변환하여보다 유연한 효과를 얻을 수 있습니다.
우리는 각 단어의 첫 글자와 다른 문자를 소문자를 대문자로 만들어야하는 문자열을 가지고 있다고 가정하지만 동시에 특정 단어 (예 : "PHP")의 경우 영향을받지 않기를 원합니다. 현재 정규 표현식을 통해 각 단어를 찾아 mb_convert_case를 사용하여 달성 할 수 있습니다.
샘플 코드 :
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"this is a php test, check PHP again."</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\b(\w+)\b/'</span></span><span>; </span><span><span class="hljs-comment">// 단어 경계를 일치시킵니다</span></span><span>
</span><span><span class="hljs-variable">$callback</span></span><span> = </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> (</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) {
</span><span><span class="hljs-comment">// 일치하는 단어를 캡처합니다</span></span><span>
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>], MB_CASE_TITLE, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
};
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace_callback</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$callback</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// 산출:This Is A Php Test, Check Php Again.</span></span><span>
</span></span>이 예에서 정규 표현식 / \ b (\ w+) \ b /는 모든 단어 경계 (즉, 각 단어)의 내용과 일치 한 다음 MB_CONVERT_CASE를 사용하여 preg_replace_callback 콜백 함수를 통해 각 단어의 첫 글자를 대문자와 소문자로 변환합니다.
때로는 특정 단어를 다른 것들에 영향을 미치지 않고 특정 단어를 케이스로 변환하면됩니다. 예를 들어, 모든 "PHP"를 "PHP"로 바꿀 수 있고 다른 단어는 동일하게 유지됩니다.
샘플 코드 :
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"I love php, and I am learning php in 2025."</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\bphp\b/i'</span></span><span>; </span><span><span class="hljs-comment">// 성냥“php”,케이스 둔감</span></span><span>
</span><span><span class="hljs-variable">$callback</span></span><span> = </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> (</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) {
</span><span><span class="hljs-comment">// 将성냥到的“php”자본으로 전환하십시오</span></span><span>
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>], MB_CASE_UPPER, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
};
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace_callback</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$callback</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// 산출:I love PHP, and I am learning PHP in 2025.</span></span><span>
</span></span>정규 표현식 /\ bphp \ b /i는 여기서 모든 경우에 민감한 "PHP"단어와 일치합니다. MB_CONVERT_CASE 는 대문자로 변환합니다.
일부 복잡한 시나리오에서는 상황에서 캐릭터의 위치에 따라 케이스를 변환할지 여부를 결정해야 할 수도 있습니다. 예를 들어, 일부 약어 또는 코드 스 니펫 (예 : "API")은 그대로 유지되어야하며 다른 단어는 케이스로 변환 될 수 있습니다.
샘플 코드 :
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"the API is a powerful tool, API is awesome."</span></span><span>;
</span><span><span class="hljs-comment">// 기존의 것을 제외하기 위해 부정적인 룩하드를 사용하십시오“API”</span></span><span>
</span><span><span class="hljs-comment">// 이것은 보장 할 것입니다“API”변환되지 않습니다,다른 단어는 정상적으로 변환됩니다</span></span><span>
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\b(?!API\b)\w+\b/'</span></span><span>;
</span><span><span class="hljs-variable">$callback</span></span><span> = </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> (</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>], MB_CASE_TITLE, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
};
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace_callback</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$callback</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// 산출:The API is A Powerful Tool, API is Awesome.</span></span><span>
</span></span>이 예에서는 "API"가 변환되지 않도록 부정적인 Lookahead (?! API \ B)를 사용하고 다른 단어는 자본화 된 첫 번째 문자로 변환됩니다.
mb_convert_case 와 정규 표현식을 결합하면보다 복잡하고 유연한 케이스 변환을 달성 할 수 있습니다. 이 접근법은 특정 규칙 (특정 단어 일치, 특정 부분 제외 또는 컨텍스트에 따라)을 기반으로 문자를 제어 해야하는 시나리오에 특히 적합합니다. 간단한 글로벌 케이스 변환이든 세분화 제어가 필요한 상황이든 MB_Convert_case 와 정규 표현식의 조합은 매우 효율적이고 맞춤형 솔루션을 제공 할 수 있습니다.