Forum Webscript.Ru

Программирование => PHP => Тема начата: 718972 от 07 Июня 2005, 11:29:20

Название: замена заглавных на строчных в строке
Отправлено: 718972 от 07 Июня 2005, 11:29:20
есть, допустим, такая строка $s=мебель для нового дома;

как записать на php такую логику:

ЕСЛИ 1я буква строки НЕ Заглавная ТО сделать(заменить) первую букву в строке на заглавную :confused:

или

ЕСЛИ вся строка набрана заглавными буквами, или в строке есть \'подстроки\'(например, в приведенном мною выше примере строки, заглавными буквами набрано \'ДЛЯ НОВОГО\') набранные заглавными буквами, ТО привести строку к такому виду: 1я буква заглавная, остальные - строчные
Название: замена заглавных на строчных в строке
Отправлено: AlieN от 07 Июня 2005, 12:51:40
а не проще ли сделать так:

$str="типа Текст бла бла БЛА бла бла БЛА БЛА";
$str_new=strtoupper(substr($str,0,1)).strtolower(substr($str,1,strlen($str)));
echo $str_new;
?>
Название: замена заглавных на строчных в строке
Отправлено: 718972 от 07 Июня 2005, 13:02:22
спасибо за ответ, AlieN

тИПА ТЕКСТ БЛА БЛА БЛА БЛА БЛА БЛА БЛА

инвертировать бы её..
Название: замена заглавных на строчных в строке
Отправлено: AlieN от 07 Июня 2005, 13:18:30
$str="тИПА ТЕКСТ БЛА БЛА БЛА БЛА БЛА БЛА БЛА ";
$str_new=strtoupper(substr($str,0,1)).strtolower(substr($str,1,strlen($str)));
echo $str_new;
?>

Результат испольнения:

Цитировать
Типа текст бла бла бла бла бла бла бла


В чем проблема?
Название: замена заглавных на строчных в строке
Отправлено: DiJay от 07 Июня 2005, 15:04:37
Парни, а может проще?
$bar = ucfirst(strtolower($bar));

пример взял из мануала :)
http://www.php.net/manual/ru/function.ucfirst.php
Название: замена заглавных на строчных в строке
Отправлено: CGVictor от 08 Июня 2005, 14:59:33
DiJay
[off]Я ждал этого ответа :)[/off]
Название: замена заглавных на строчных в строке
Отправлено: 718972 от 09 Июня 2005, 20:18:02
Цитировать
Парни, а может проще?

$bar = ucfirst(strtolower($bar));


Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали "C" locale, символ Ä не будет преобразован.


как же быть с русским (кириллица) текстом
Название: замена заглавных на строчных в строке
Отправлено: 718972 от 09 Июня 2005, 20:35:28
наверное, вопрос снят? :
setlocale(LC_ALL, \'ru_RU.CP1251\');
$str = ucfirst(strtolower($str));


единственное, не нужно ли эту локалю обратно вернуть.. а то может где скажется.. ??