2013-04-12 38 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); 

我不知道是否有内置的功能,但我认为这应该工作?

相关问题