Можно ли сделать первый символ строки Большим

nova

Новичок
А можно ли сделать ?

Подскажите пилз можно ли сдеать первый символ строки Большим если он не известен, тоесть есть строка случайно сгенерённая, но все буквы в ней меленькие, а вообще в идеале я хотел бы сдеть чтоб в случайно генерённой строке все новые предложения начинались с большой буквы, но я к сожалению не имею даже представления как это сделать, помогите пожалуйста !
 

SelenIT

IT-лунатик :)
Можно. Алгоритм такой:
1. Четко определяем, что считать предложением и, соответственно, его первой буквой.
2. Находим в генерённой строке все первые буквы предложений (согласно п. 1).
3. Заменяем найденные буквы на результат функции перевода их в верхний регистр (она есть в мане в разделе "Строковые функции", притом не одна).

Пункты 2 и 3 можно объединить, например, в одном вызове ф-ции preg_replace с модификатором e. Но теоретически можно обойтись без регулярок, хотя с ними гораздо удобнее.

С большой долей вероятности может понадобиться еще один пункт
0. Настроить локаль.
 

nova

Новичок
а есть какая нибудь дока как это через СSS сделать ?
 

SelenIT

IT-лунатик :)
Одним CSS не отделаться. С помощью свойства text-transform можно сделать (визуально) только то же, что и с помощью ф-ции по ссылке Solidа (и ее "компании"). Определить, где кончается и начинается предложение, нужно будет в любом случае.
 

nova

Новичок
ну что я могу сказать, дело в том что я только начинающий в вэб програмированини, но в данном случае конец предложения после символов '. 'тоесть точька а после неё пробел, ну помимо точки может быть знак вопроса или восклицания, или точька с запетой, в любом случае для меня это слишком сложная задача :(
 

SelenIT

IT-лунатик :)
Точка с запятой, насколько мне известно, предложение не заканчивает (в русском языке, в отличие от PHP :) ). Таким образом получается, что первая буква предложения - это буква (русская либо латинская), которая стоит либо в начале строки, либо после одного из символов .!?, за которыми следует как минимум один пробельный символ. Так?

А теперь это определение можно довольно легко перевести на язык регулярных выражений.

P.S. Имхо, зря все-таки тему сюда перенесли...
 

white phoenix

Новичок
PHP:
$string = 'the syntax for patterns used in these functions closely resembles perl.
the expression should be enclosed in the delimiters, a forward slash (/), for example.';
$result = preg_replace('~(?:\A|(\?|\.|\!)(\s+))(\w)~e','"$1"."$2".strtoupper("$3")',$string);
var_dump($result);
/*string(159) "The syntax for patterns used in these functions closely resembles perl.
The expression should be enclosed in the delimiters, a forward slash (/), for example."*/
 

Santerx

Новичок
Re: А можно ли сделать ?

Автор оригинала: nova
Подскажите пилз можно ли сдеать первый символ строки Большим если он не известен, тоесть есть строка случайно сгенерённая, но все буквы в ней меленькие, а вообще в идеале я хотел бы сдеть чтоб в случайно генерённой строке все новые предложения начинались с большой буквы, но я к сожалению не имею даже представления как это сделать, помогите пожалуйста !
ucfirst - переводит первый символ строки в верхний регистр.
string ucfirst (string str)

Возвращает строку с первым символом в верхнем регистре, если это алфавитный символ.

Пример 1. ucfirst()
$foo = 'hello world!';
$foo = ucfirst($foo); // Hello world!

ucwords - Первый символ каждого слова строки переводится в верхний регистрstring ucwords (string str)

Возвращает строку с первыми символами каждого слова, переведёнными в верхний регистр, если это алфавитные символы.

Пример 1. ucwords()
$foo = 'hello world!';
$foo = ucwords($foo); // Hello World!
 
Сверху