2015-08-28 43 views
0

我試圖使每個句子的第一個字母爲大寫,同時保留標點符號。我已經嘗試ucfirst,但它只是使字符串的第一個字母大寫,而不是所有其他句子。我該如何解決?使用ucfirst製作每個句子大寫的第一個字母

$text = "yes. are you listening to me? huh?!" 
$text = ucfirst($text); 

echo $text; 

預期輸出:

Yes. Are you listening to me? Huh?!" 

實際輸出:

Yes. are you listening to me? huh?!" 
+0

的手冊頁這個非常函數有幾個用戶函數來做到這一點 – 2015-08-28 02:19:10

+0

像這樣一個http://php.net/manual/en/function.ucfirst.php#86902 – ElefantPhace

+2

該手冊肯定是一個了不起的地方 – 2015-08-28 02:21:33

回答

1

試試這個:

function ucfirstSentence($str){ 
    $str = ucfirst(strtolower($str)); 
    $str = preg_replace_callback('/([.!?])\s*(\w)/', 
     create_function('$matches', 'return strtoupper($matches[0]);'), $str); 
    return $str; 
} 
相關問題