2013-04-12 41 views
4

我期待將一個句子的第一個單詞轉換爲大寫,但不確定該如何處理。這是我到目前爲止有:將句子中的第一個單詞改爲大寫

$o = ""; 

    if((preg_match("/ibm/i", $m)) || (preg_match("/hpspecial/i", $m))) { 

$o = strtoupper($m); 

} else { 

    $o = ucwords(strtolower($m)); 

} 

我想用uppercasehpspecial ID,其中HP是句子的第一部分予以資本化,但這將大寫整個句子。我怎樣才能讓句子的大寫HP?

+0

你能給出完整的原始句子,以及你想要將它轉換爲什麼嗎?你的問題對我來說不是很清楚。 – nbrogi

回答

5

您可以通過ucfirst

ucfirst點他的 - 做一個字符串的第一個字符大寫

$foo = 'hello form world'; 
$foo = ucfirst($foo); 

live output

編輯:,使其首字大寫,你可以像

<?php 
$foo = 'hello form world '; 

$pieces = explode(" ", $foo); 
$pieces[0] = strtoupper($pieces[0]); 
$imp = implode(" ", $pieces); 
echo $imp; 

live result

+0

謝謝。但我希望整個SENTENCE的單詞是大寫的,而不是第一個字母。我知道我必須使用strtoupper,但在我的代碼中,我已經提供了將'hpspecial'的整個句子轉換爲大寫,我只想要第一個單詞的句子upper – ash

+0

@ user1274069檢查編輯的答案 –

-1

看來你真的沒有特殊的模式,爲什麼不只是使用的preg_replace?

$search = array('/ibm/i', '/hpspecial/i'); 
$replace = array('IBM', 'HPspecial'); 

$string = preg_replace($search, $replace, $string); 

你必須做這樣的反正,因爲你不能真正的區別是惠普從特殊(至少簡單的方法);

實際上,您可以使用相同的方法使用str_replace,因爲我沒有看到使用複雜模式。

有時,最簡單的解決方法是像

function uc_first_word ($string) 
{ 
    $s = explode(' ', $string); 
    $s[0] = strtoupper($s[0]); 
    $s = implode(' ', $s); 
    return $s; 
} 

$字符串=「你好世界上最好的

-1

可以使用自定義功能。這是一個測試。'; 回聲$ S = uc_first_word($字符串)

所以輸出將是

HELLO world. This is a test 

所以第一個字之前空間將作爲上對整個句子。

1

怎麼是這樣的:

$arr = explode(' '); 
$arr[0] = strtoupper($arr[0]); 

echo implode(' ' , $arr); 

我不知道是否有內置的功能,但我認爲這應該工作?

相關問題