UTF-8 문자열에서 첫 번째 문자만 대문자로 변경하는 함수입니다.

<?php 
 function ucwords_callback($matches) { 
   $ucword = mb_substr_replace(ltrim($matches[0]),mb_strtoupper($matches[3]),0,1);
   return $matches[2] . $ucword; 
 }

 function mb_substr_replace($str, $replacement, $start , $length=false ) {  
   preg_match_all('/./us', $str, $match1);  
   preg_match_all('/./us', $replacement, $match2);  

   if( $length === false ) {  
     $length = mb_strlen($str);  
   }  
   array_splice($match1[0], $start, $length, $match2[0]);  
   return join('', $match1[0]);  
 } 

 $str = 'tχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός'; 
 $pattern = '/(^|([\x0c\x09\x0b\x0a\x0d\x20]+))([^\x0c\x09\x0b\x0a\x0d\x20]{1})[^\x0c\x09\x0b\x0a\x0d\x20]*/u'; 


 echo preg_replace_callback($pattern, 'ucwords_callback', $str); 
 // 출력: Tχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός 
 ?>

0 댓글