Как в PHP сделать первую букву в верхнем регистре?

Возможный дубликат:
Как отображать первую букву в верхнем регистре?
PHP сделать первую букву первого слова в предложении заглавной

Я хочу заглавную первую букву в предложении и после точки. Может кто подскажет как сделать?

Например,

//I have the following in a language class.
"%s needs to identify areas of strength and 
weakness. %s sets goals for self-improvement."; 

// in a view
$contone=$this->lang->line($colstr);// e.g get the above string.
//$conttwo=substr($contone, 3);//skip "%s " but this doesnot work when there 
//are more than one %s
$conttwo=str_replace("%s ", "", $contone);// replace %s to none 
$contthree = ucfirst($conttwo); // this only uppercase the first one

Я хочу следующий вывод.

Needs to identify areas of strength and 
weakness. Sets goals for self-improvement.

person shin    schedule 21.01.2012    source источник
comment
Надежно? Может быть невозможно. Было бы трудно отличить точку от запятой. Вы можете взорвать() строку в файле . символ, ucfirst каждый элемент массива и результат implode() или preg_replace для . символы, за которыми следует по крайней мере один пробел и [a-z], но в любом подходе есть много возможностей для ошибки.   -  person GordonM    schedule 21.01.2012


Ответы (2)


Попробуйте ниже.

Он запустит функцию, чтобы сделать каждую букву заглавной ПОСЛЕ точки (точки) в строке, состоящей из нескольких предложений.

    $string = ucfirst(strtolower($string));     

    $string = preg_replace_callback('/[.!?].*?\w/', create_function('$matches', 'return strtoupper($matches[0]);'),$string);

    echo $string;

Пожалуйста, внесите необходимые изменения.

person Community    schedule 21.01.2012

Попробуй это:

<?php
//define string
$string = "your sentences";

//first we make everything lowercase, and then make the first letter if the entire string capitalized
$string = ucfirst(strtolower($string));

//now we run the function to capitalize every letter AFTER a full-stop (period).
$string = preg_replace_callback('/[.!?].*?\w/', create_function('$matches', 'return strtoupper($matches[0]);'),$string);

//print the result
echo $string;

?>
person Kichu    schedule 21.01.2012