2014-05-12 154 views
1

是否可以編輯像Text-elementTextElement這樣的字符串?每個之後 - 它需要一個大寫字母。更改字符串 - 要大寫字母

我不能完成它,並不能找出一種方法來做到這一點。

回答

2

你可以這樣做:

$text = implode(array_map('ucfirst',explode('-',$str))); 

首先,我們在連字符-點拆分所有字符串,然後每首字母將是上限。然後,加入它。

DEMO

0

這shoudl做...

$string = "Text-element"; 
$s = explode("-", $string); 
$finished_string = $s[0] . ucfirst($s[1]); 
+1

任何人都可以至少解釋爲什麼這是downvoted這樣嗎?它完美的工作,布胡,我使用3行代碼,而不是一些很酷的preg_replace_callback函數。我是一個壞人。 –

+0

它只適用於「兩個字」的字符串,額外的字將被切斷。我沒有downvote雖然;) –

+0

不知道爲什麼這得到downvoted,即使它是一個案件,它仍然有效。 +1。 –

3
$text = preg_replace_callback(
    '/-([a-z])/', 
    function (array $match) { return strtoupper($match[1]); }, 
    $text 
); 
+0

Yay ['preg_replace_callback'](http://php.net/preg-replace-callback)!我最喜歡的功能之一... –

+3

微小差異:'preg_replace_callback ('/([az] +) - ?/',function($ m){return ucfirst($ m [1]);},strtolower($ str));' –

+0

@Amal是的, OP正在尋找... – deceze