php с большой буквы первый символ
Как сделать первую букву заглавной php кирилица
Достаточно редко, но всё-же возникает такая необходимость, как сделать первую букву заглавной php кирилица.
Это когда первая буква слова становится большой. Применить это можно, например, для унификации написания имени пользователя, или, например, когда нужно автоматически составить текст в предложение.
Как сделать первую букву заглавной php латиница
Тут всё достаточно просто: в PHP есть 2 функции: ucfirst() и ucwords(). Первая делает только первую букву в строке заглавной, вторая делает первую букву каждого слова в строке заглавной.
В результате получим две строки:
First letters
и
First Letters
Видим разницу. С английскими текстами (или любыми другими), написанными латиницей проблем не будет.
Как сделать первую букву заглавной php кирилица Windows-1251 (CP-1251)
С кирилицей (русскими буквами) которые записаны в кодировки Windows-1251 тоже не будет больших проблем:
В результате получим две строки:
Первые буквы
и
Первые Буквы
Как сделать первую букву заглавной php кирилица UTF-8
Но как только дело доходит до UTF-8 начинаются проблемы, потому, что кирилица в UTF-8 занимает 2 байта, и поэтому ничего не получится. Для этого будем использовать «костыль» от Multibyte String Functions. Если этот плагин установлен на PHP, то можно просто использовать 2 аналогичные функции: mb_ucfirst и mb_convert_case.
А если их нет, то нужно дополнить код своими альтернативами:
Результатом этому коду станут такие строчки:
первые буквы
первые буквы
Первые буквы
Первые Буквы
Как видите, первые 2 строчки не сработали, из-за того, что обычные ucfirst и ucwords не умеют работать с кирилицей в UTF-8.
С помощью этих функций можно построить успешный бизнес на продвижении сайтов. Ну не только на этих функциях, но поверьте, в продвижении сайтов всегда нужно всё максимально автоматизировать.
Делаем первую букву в строке заглавной на PHP/jQuery/CSS
Зачастую в спешке при добавлении материалов на сайт или, например, создании новой темы на форуме пользователь может начать писать предложение (название) с маленькой (строчной) буквы. Это в какой-то степени является ошибкой.
Я покажу несколько вариантов решения этой задачи: PHP и CSS подойдут больше для уже опубликованных материалов, когда как jQuery сможет исправить положение еще до публикации.
Первая буква строки в верхнем регистре на PHP
На PHP существует функция под названием «ucfirst», которая как раз преобразует первый символ строки в верхний регистр, но минус ее в том, что она не совсем корректно работает с кириллицей.
Для этого мы напишем свою небольшую функцию. Реализация будет выглядеть следующим образом:
В таком варианте мы получим предложение, которое начинается с большой буквы, что, собственно говоря, нам и необходимо.
Первая буква строки в верхнем регистре на CSS
Этот метод визуально (то есть в исходном коде сайта предложения будут выглядеть как есть) также преобразует первый символ в верхний регистр.
С помощью псевдоэлемента «first-letter» и свойства «text-transform» мы задали оформление для каждой первой буквы параграфа.
Первая буква строки в верхнем регистре на jQuery
Как я уже говорил ранее, этот способ преобразования лучше всего подойдет для материалов, которые еще только будут публиковаться.
Для примера мы возьмем текстовое поле (оно будет выступать у нас в качестве поля для ввода заголовка) и напишем для него небольшой скрипт, который при вводе предложения с маленькой буквы делает его с большой:
Скрипт срабатывает как при написании текста, так и простой его вставке. Не забывайте, что для работы скриптов на вашем сайте необходимо наличие подключенной библиотеки jQuery.
ucwords
(PHP 4, PHP 5, PHP 7, PHP 8)
ucwords — Преобразует в верхний регистр первый символ каждого слова в строке
Описание
Список параметров
Необязательный параметр separators содержит символы разделителей слов.
Возвращаемые значения
Возвращает модифицированную строку.
Примеры
Пример #1 Пример использования ucwords()
Пример #2 Пример ucwords() с заданным разделителем
Пример #3 Пример использования ucwords() с дополнительными разделителями
Примечания
Замечание: Функция зависит от локали и будет обрабатывать ввод в соответствии с текущим установленным языковым стандартом. Однако она работает только с однобайтовыми наборами символов. Если вам нужно использовать многобайтовые символы (большинство языков, не входящих в Западную Европу), обратите внимание на модули multibyte или intl вместо нее.
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
User Contributed Notes 28 notes
My quick and dirty ucname (Upper Case Name) function.
//PRINTS:
/*
Jean-Luc Picard
Miles O’Brien
William Riker
Geordi La Forge
Beverly Crusher
*/
?>
You can add more delimiters in the for-each loop array if you want to handle more characters.
Para formatar nomes em pt-br:
Some recipes for switching between underscore and camelcase naming:
UTF-8 Title Case that works for me even with hyphens involved!
$str = ‘ĐaaČaa-AAAaaa, BBbb’;
$str = mb_convert_case($str, MB_CASE_TITLE, «UTF-8»);
echo($str): ‘Đaačaa-Aaaaaa, Bbbb’
In the function ucsmart() posted by ieure at php dot net on 04-Dec-2005 11:57, I found a similar problem in this function to what he found in igua’s.
Actually, it did end up changing the content for me (php 5.0.4) in the way that this function escapes a single quotation (apostrophe) in the MIDDLE of a word.
The fix is simple however, and merely requires fine-tuning the regular expression:
This will not escape a single quotation mark which occurs in the middle of a word. Though, you may find that might need to add other characters inside the regular expression if you use other special characters inside your words and if you get funky output.
It’s a great expression though! Simple, yet very powerful. Kudos!
Features:
— multi byte compatible
— handles multiple delimiters
Relating to the mb_ucwords() function posted by Anonymous. In order for this to actually be multi-byte compliant, you would also need to use mb_substr() and mb_strlen() instead of substr and strlen respectively.
Here it is corrected and extended even further to allow multiple word separators and a list of exceptions to correct after title casing. It’s a bit tedious and inelegant, but things frequently are when dealing with human languages.
function mb_ucwords($str) <
$exceptions = array();
$exceptions[‘Hp’] = ‘HP’;
$exceptions[‘Ibm’] = ‘IBM’;
$exceptions[‘Gb’] = ‘GB’;
$exceptions[‘Mb’] = ‘MB’;
$exceptions[‘Cd’] = ‘CD’;
$exceptions[‘Dvd’] = ‘DVD’;
$exceptions[‘Usb’] = ‘USB’;
$exceptions[‘Mm’] = ‘mm’;
$exceptions[‘Cm’] = ‘cm’;
// etc.
Turkish character with the ucwords function.
echo ucwords_tr ( ‘ŞEKardi ŞEMŞİYE ĞELENÖ ÖMER’ ); // Şekardi Şemşiye Ğelenö Ömer
echo ucwords_tr ( ‘şEKER iMSAK şÖLEN’ ); // Şeker İmsak Şölen
To avoid this i use a small function adding and deleting blanks behind these chars, and using ucwords() in between:
ucwords for UTF-8 strings:
«ieure at php dot net», your idea is pure poetry!
// captialize all first letters
$str = preg_replace(‘/\\b(\\w)/e’, ‘strtoupper(«$1»)’, strtolower(trim($str)));
ucwords for human names in Brazil.
ucwords personalizada para nomes próprios brasileiros.
Thanks a lot brother.
I tested it with a few variations. It works perfectly. Its really great and simple usage of the existing functions. It would be glad to all PHP folks and good to PHP if these kind of functions will be in PHP library on upcoming releases.
= «mark-yves robert» ;
$name2 = «mark-yves robert-bryan» ;
echo ‘
Name 2 (mark-yves robert-bryan)
?>
Proud to be a PHP enthusiast always 🙂
A very easy way to convert to title case:
function titleCase($string)
<
return ucwords(strtolower($string));
>
$myString = «SOME TEXT»;
//will print, «My Text»
Here is a function to capitalize a last name, accounting for hyphens, apostrophes, «Mc» and «Mac»:
This seems to be what people want:
[ed note: fixed the code to be correct]
The code posted above by Joerg Krause only works for a string which ends with one of the delimiters. A possible fix is:
I did the same thing as Catalin, but for French names.
Here’s what I’m doing :
This complies with the French rules for capitalization in names.
Sample results :
-d’Afoo Bar
-de Foo Bar
-O’Foo Bar
-Foo’bar
Based on code sample originally posted by «Anonymous» on 2005-12-14. The /e modifier is no longer supported by preg_replace(). Rewritten to use preg_replace_callback() instead. Tested with PHP 7.3.
// Trim whitespace and convert to lowercase
$str = strtolower(trim($string));
strtoupper
(PHP 4, PHP 5, PHP 7, PHP 8)
strtoupper — Преобразует строку в верхний регистр
Описание
Принадлежность того или иного символа к буквенным определяется с учётом текущей локали. Это означает, что, например, в используемой по умолчанию локали «C», символ ä не будет преобразован.
Список параметров
Возвращаемые значения
Возвращает строку в верхнем регистре.
Примеры
Пример #1 Пример использования strtoupper()
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
User Contributed Notes 16 notes
One might think that setting the correct locale would do the trick with for example german umlauts, but this is not the case. You have to use mb_strtoupper() instead:
Here is how to make the character in upper case, except HTML-entities:
If you only need to extend the conversion by the characters of a certain language, it’s possible to control this using an environment variable to change the locale:
When using UTF-8 and need to convert to uppercase with
special characters like the german ä,ö,ü (didn’t test for french,polish,russian but think it should work, too) try this:
If you can’t find an appropriate locale setting, check your system configuration (locales are a system-wide setting, PHP gets them from the OS). On Windows, locales can be set from the Control Panel; on Linux it depends on your distribution. You can try «sudo dpkg-reconfigure locales» on Debian-based distros, or configure them manually. On Ubuntu Dapper, I had to copy entries over from /usr/share/i18n/SUPPORTED to /var/lib/locales/supported.d/local, then do the dpkg-reconfigure.
After you’re done, restart the web server.
That said, there are special cases where you want to do the conversion manually. In German, for example, the letter ‘ß’ (szlig) only exists as a lower-case character, and so doesn’t get converted by strtoupper. The convential way to express a ‘ß’ in an uppercase string is «SS». This function will take care of this exception (for Latin1 and most of Latin9, at least):
Изменить регистр первой буквы в первом слове
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Изменить регистр первой буквы в слове
Записать фамилию, имя и отчество. Вывести фамилию большими буквами с помощью strupr.
В каждом слове изменить регистр последней буквы
Помогите, пожалуйста! Нужно, чтобы в каждом слове последняя буква была заглавной. Каким образом.
Изменить регистр первой буквы слова при переходе на новую строку
Здравствуйте. Подскажите как сделать, чтобы в документе при переходе на новую строку, написанное.
да. Вернее, не совсем да. Можно написать любое допустимый аргумент, как в обычной функции (равно как и его отсутствие вовсе).
Добавлено через 50 секунд
.. но чтобы он был с типом данных array
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Убрать символы в слове и изменить регистр
Записал в переменную первое слово из строки: var first_word = line.Split(‘ ‘); Требуется.
Написать программу, которая в каждом слове перемешивает буквы местами за исключением первой и последней буквы слова
Написать программу, которая в каждом слове перемешивает буквы местами за исключением первой и.
Определить буквы, которые встречаются только в первом и во втором слове
Даны 4 слова, определить те буквы, которые встречаются только в первом и во втором слове Заранее.
ComboBox игнорирует регистр первой буквы
Здравствуйте. Помогите пожалуйста решить проблему. Мне нужно вставить сроку с ComboBox в текст в.
Перевод в верхний регистр первой буквы каждого слова
Очень прошу помочь дело срочное. Задание выглядит так: Создать меню с командами разработчик.
Заменить регистр букв в каждом слове, содержащем две и более одинаковые гласные буквы
Здравствуйте. Прошу Вас помочь решить задачу Заменить регистр букв в каждом слове, содержащем.