将句子中的第一个单词更改为大写

时间:2013-04-12 09:36:43

标签: php uppercase toupper

我希望将句子的第一个单词转换为大写,但不确定我将如何处理它。这就是我到目前为止所做的:

$o = "";

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

$o = strtoupper($m);

} else {

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

}

我想使用uppercase ID中的hpspecial,其中HP是句子的第一部分,但是这将大写整个句子。我如何才使HP的句子大写?

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

这样的事情怎么样:

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

echo implode(' ' , $arr);

我不知道是否有内置功能,但我认为这应该有用吗?

答案 2 :(得分:-1)

似乎你没有特殊的模式,为什么不只使用preg_replace?

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

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

无论如何你必须这样做,因为你不能真正区别HP和Special(至少用简单的方式);

你可以使用str_replace实际使用相同的方法,因为我没有使用复杂的模式。

有时最简单的解决方案是最好的

答案 3 :(得分:-1)

您可以使用

等自定义功能
function uc_first_word ($string)
{
   $s = explode(' ', $string);   
   $s[0] = strtoupper($s[0]);   
   $s = implode(' ', $s);
   return $s;
}

$ string ='Hello world。这是一个测试。'; echo $ s = uc_first_word($ string)

所以输出将是

HELLO world. This is a test

所以在空格之前的第一个单词将作为整个句子的上限。