我希望将句子的第一个单词转换为大写,但不确定我将如何处理它。这就是我到目前为止所做的:
$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的句子大写?
答案 0 :(得分:5)
你可以点ucfirst
ucfirst
- 将字符串的第一个字符设为大写
像
$foo = 'hello form world';
$foo = ucfirst($foo);
编辑,使第一个单词大写,你可以这样做
<?php
$foo = 'hello form world ';
$pieces = explode(" ", $foo);
$pieces[0] = strtoupper($pieces[0]);
$imp = implode(" ", $pieces);
echo $imp;
答案 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
所以在空格之前的第一个单词将作为整个句子的上限。