感謝您的所有意見。 Initcap函數啓動了我的正確路徑。我想分享我使用的代碼,這正是我所需要的。這也適用於Umlaute並檢查空格,點和短劃線。
function initCap($string){
mb_internal_encoding('UTF-8');
$return_string ='';
$pattern='/[\wäöüÄÖÜßáéíóúÁÉÍÓÚ]+[\s\.\-]+/';
if(preg_match($pattern, $string)){
while(preg_match($pattern,$string,$temp_array,PREG_OFFSET_CAPTURE,strlen($return_string))){
if(stripos($temp_array[0][0],'von ')===0 ||stripos($temp_array[0][0],'der ')===0){
$return_string.=strtolower($temp_array[0][0]);
}else {
$convert = mb_strtolower($temp_array[0][0]);
$return_string .= mb_strtoupper(mb_substr($convert,0,1)).mb_substr($convert,1);
}
}
$return_string.=ucfirst(strtolower(substr($string,strlen($return_string))));
} else {
$convert = mb_strtolower($string);
$return_string = mb_strtoupper(mb_substr($convert,0,1)).mb_substr($convert,1);
}
return $return_string;
}
你試過了什麼? – RiggsFolly
我使用類似CASE的名字LIKE'% - %'來定位單個特殊字符。 – user3931315
可能的重複[如何在MySQL中實現initcap功能?](http://stackoverflow.com/questions/12364086/how-can-i-achieve-initcap-functionality-in-mysql) –