我正在爲使用Codeigniter構建的自定義CMS編碼標記系統,並試圖執行特定格式。首字母大寫除文章,連詞和介詞外每個單詞的首字母
基本上,我需要每個單詞的第一個字母與下面的例外予以資本化,這應該是小寫:
- 文章:一,一個在
- 協調連接詞:和,但是,或者,對於,也不等
- 介詞(少於五個字母):與上,在以從由等
此外,如果標籤與一個開始以上,應該是ca pitalized。
正確格式化標籤的一些例子:
- 權力的遊戲
- 的小人和男子
- 從第一個到最後一個環的
- 主
- 極品飛車:
到目前爲止我只有:
$tag = 'Lord of the Rings';
$tag = ucwords($tag);
$patterns = array('/A/', '/An/', '/The/', '/And/', '/Of/', '/But/', '/Or/', '/For/', '/Nor/', '/With/', '/On/', '/At/', '/To/', '/From/', '/By/');
$lowercase = array('a', 'an', 'the', 'and', 'of', 'but', 'or', 'for', 'nor', 'with', 'on', 'at', 'to', 'from', 'by');
$formatted_tag = preg_replace($patterns, $lowercase, $tag);
// capitalize first letter of string
$formatted_tag = ucfirst($formatted_tag);
echo $formatted_tag;
這將產生環的主的正確的結果,但我怎麼能避免重複陣列?當我添加新單詞時,將它們匹配起來非常繁瑣。
我確定有一些詞應該包含在我的文件中,是否有任何現有的函數或類可以使用?
這似乎有竅門: http://bpaste.net/show/91wu3ckWxxQ7cgWN4AtJ/ – sberry 2012-08-08 18:48:09
如果你想在輸入上使用此功能,請使用:http://stackoverflow.com/a/40983766/3620727 – Doglas 2016-12-05 21:37:59