2013-04-12 3 views
4

Я ищу, чтобы преобразовать первое слово предложения в верхний регистр, но не знаю, как бы я по нему поработал. Это то, что я до сих пор:Изменить первое слово в предложении в верхнем регистре

$o = ""; 

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

$o = strtoupper($m); 

} else { 

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

} 

Я хотел бы использовать uppercase из hpspecial 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» в верхний регистр, я просто хочу, чтобы первое слово предложения верхнее – ash

+0

@ user1274069 проверить отредактированный ответ –

-1

Кажется, что вы на самом деле не имеют особого рисунка, почему бы просто не использовать preg_replace?

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

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

Вы должны сделать это так или иначе, потому что вы не можете на самом деле разница HP от Special (по крайней мере, с простыми способами);

Вы можете использовать тот же подход, используя str_replace на самом деле, поскольку вы не используете сложные шаблоны, насколько я могу видеть.

Иногда самым простым решением является лучшим

-1

вы можете использовать пользовательские функции, как

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

$ строка = «Привет мир. Это тест.'; эхо $ S = uc_first_word ($ строка)

так результат будет

HELLO world. This is a test 

так первое слово, прежде чем пространство будет в верхней для всего предложения.

1

Как о чем-то вроде этого:

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

echo implode(' ' , $arr); 

Я не знаю, если есть встроенная функция, но я думаю, что это должно работать?