Как сделать заглавным первый символ php
Перейти к содержимому

Как сделать заглавным первый символ php

  • автор:

Сделать первую букву заглавной (PHP)

В PHP есть функция ucfirst() , которая первую букву в строке делает заглавной, ucwords() — делает заглавными буквы во всех словах строки, в работе с кириллицей, в юникоде, возникают проблемы.

Кириллица и юникод — вечная проблема всех версий PHP, частично проблема решена, существует функция string mb_convert_case (string str, int mode [, string encoding]) , которая принимает в качестве параметров строку, режим преобразования (0 — все буквы в верхний регистр, 1 — все буквы в нижний регистр, 2 — ВСЕ ПЕРВЫЕ буквы всех слов в верхний регистр) и кодировка.

Преобразование букв

Задача: преобразовать первую букву в строке и все первые буквы во всех словах в строке.

Английские буквы

С английскими буквами в стандартно-используемых кодировках (UTF-8 и Windows-1251) проблем не возникает.

‘; // первая буква во всех словах echo ucwords($str); ?>

Результат на экране
First letters
First Letters

Кириллица и Windows-1251

С кириллицей в Windows-1251 проблем так же не должно возникнуть.

‘; // первая буква во всех словах echo ucwords($str); ?>

Результат на экране
Первые буквы
Первые Буквы

Кириллица и UTF-8

С кириллицей в юникоде функции ucfirst() и ucwords() не справятся и преобразований не произойдет.

Для этого определяется функция mb_ucfirst(string str [, string encoding]) , которая будет обрабатывать юникод-строки.

Результат на экране
первые буквы
первые буквы
Первые буквы
Первые Буквы

✖ ❤ Мне помогла статья 12 оценок
69044 просмотра 3 комментария Артём Фёдоров 12 апреля 2011

Категории

Читайте также

  • Сделать первую букву заглавной (Perl)
  • Первую букву в верхний регистр (JavaScript)
  • Как инвертировать строку (PHP)
  • Как узнать длину строки (PHP)
  • Транслит (PHP)
  • Определить поискового бота (PHP)
  • Удалить все теги (PHP)
  • Строку в верхний регистр (PHP)
  • Строку в нижний регистр (PHP)
  • Удалить все пробелы (PHP)
  • Удалить двойные пробелы (PHP)
  • Первые N символов строки цифры (PHP)

Комментарии

06 октября 2021 в 07:51

Перед тем как подобные статьи писать, разберись сам в функциях. Ничего о не меняет, как были слова так и остались

strtoupper

Возвращает строку string , в которой все буквенные символы ASCII переведены в верхний регистр.

Байты в диапазоне от «a» (0x61) до «z» (0x7a) будут преобразованы в соответствующую заглавную букву путём вычитания 32 из каждого значения байта.

Функцию можно использовать для преобразования символов ASCII в строках, закодированных в UTF-8, поскольку многобайтовые символы UTF-8 будут проигнорированы. Для преобразования многобайтовых не ASCII символов используйте функцию mb_strtoupper() .

Список параметров

Возвращаемые значения

Возвращает строку в верхнем регистре.

Список изменений

Версия Описание
8.2.0 Преобразование регистра больше не зависит от локали, установленной с помощью функции setlocale() . Будут преобразованы только символы ASCII.

Примеры

Пример #1 Пример использования strtoupper()

$str = «Mary Had A Little Lamb and She LOVED It So» ;
$str = strtoupper ( $str );
echo $str ; // выводит: MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strtolower() — Преобразовывает строку в нижний регистр
  • ucfirst() — Преобразовывает первый символ строки в верхний регистр
  • ucwords() — Преобразовывает в верхний регистр первый символ каждого слова в строке
  • mb_strtoupper() — Приведит строку к верхнему регистру

User Contributed Notes 16 notes

10 years ago

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:

setlocale ( LC_CTYPE , ‘de_DE.UTF8’ );

echo strtoupper ( ‘Umlaute äöü in uppercase’ ); // outputs «UMLAUTE äöü IN UPPERCASE»
echo mb_strtoupper ( ‘Umlaute äöü in uppercase’ , ‘UTF-8’ ); // outputs «UMLAUTE ÄÖÜ IN UPPERCASE»

7 years ago

Here is how to make the character in upper case, except HTML-entities:

There is small kludge, however. Unfortunately I tired to find out the way how to exclude HTML-entity at the start of the line, so I have added 1 dummy character at the start of the text and removing it after the conversion.

21 years ago

something I myself first not thought about:
if there are any html entities (named entities) in your string, strtoupper will turn all letters within this entities to upper case, too. So if you want to manipulate a string with strtoupper it should contain only unicode entities (if ever).

17 years ago

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:

function strtoupper_utf8($string) $string=utf8_decode($string);
$string=strtoupper($string);
$string=utf8_encode($string);
return $string;
>

19 years ago

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:

15 years ago

It has been mentioned in a previous comment that all you need to do to let PHP’s strtoupper() do the conversion — instead of writing more or less complicated functions yourself — is to specify the locale in which you’re doing the case conversion:

It is important to note that setlocale() will silently fail if it can’t find the specified locale on your system, so *always* check its return value. Try different spellings: using «de_AT» as an example, there are various combinations that may or may not work for you: «de», «de_AT.utf8», «de_AT.iso-8859-1», «de_AT.latin1», «de_AT@euro», etc).

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):

define ( «LATIN1_UC_CHARS» , «ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ» );
define ( «LATIN1_LC_CHARS» , «àáâãäåæçèéêëìíîïðñòóôõöøùúûüý» );

function uc_latin1 ( $str ) $str = strtoupper ( strtr ( $str , LATIN1_LC_CHARS , LATIN1_UC_CHARS ));
return strtr ( $str , array( «ß» => «SS» ));
>

Как сделать первую букву заглавной в PHP

Первая буква в верхнем регистре на PHP

Я постараюсь дать максимально развернутый ответ на вопрос: как сделать первую букву заглавной в PHP. Хотя это из разряда стандартных функций языка, которая способна хоть немного, но упростить жизнь, но если вы сюда зашли, значит не все так однозначно. Встречается довольно часто, можно использовать практически в любых проектах, например в том же CRUD приложении. Что ж, давайте разбираться. Изначально функция выглядит так:

Телеграм-канал serblog.ru

$string = "hello"; ucfirst($string); // Hello

$string = «hello»; ucfirst($string); // Hello

Преобразовать первую букву слова в верхний регистр довольно просто, если вы пишете исключительно на латинском, но если использовать кириллицу, то здесь нас ждет разочарование. Конструкция в таком виде не сработает. Но у нас есть решение. Вот его пример:

$txt = "привет мир!"; echo mb_convert_case($txt, MB_CASE_TITLE); // Привет Мир!

$txt = «привет мир!»; echo mb_convert_case($txt, MB_CASE_TITLE); // Привет Мир!

Но здесь есть один недостаток. Дело в том, что заглавной станут буквы каждого слова в строке. Это нужно далеко не всегда, поэтому идем дальше. Все-таки PHP уникальный язык, он позволяет включить фантазию и сделать что-то свое. Вот, например, одно из нестандартных решений этой задачи:

1 2 3 4 5
$txt = "привет букет"; $str = mb_strtoupper(substr($txt,0,2)); $txt[0] = $str[0]; $txt[1] = $str[1]; echo $txt; // Привет букет

$txt = «привет букет»; $str = mb_strtoupper(substr($txt,0,2)); $txt[0] = $str[0]; $txt[1] = $str[1]; echo $txt; // Привет букет

Теперь вы знаете как сделать первую букву заглавной в PHP в кириллическом тексте.

Делаем первую букву в строке заглавной на PHP/jQuery/CSS

Зачастую в спешке при добавлении материалов на сайт или, например, создании новой темы на форуме пользователь может начать писать предложение (название) с маленькой (строчной) буквы. Это в какой-то степени является ошибкой.

Я покажу несколько вариантов решения этой задачи: PHP и CSS подойдут больше для уже опубликованных материалов, когда как jQuery сможет исправить положение еще до публикации.

Первая буква строки в верхнем регистре на PHP

На PHP существует функция под названием «ucfirst», которая как раз преобразует первый символ строки в верхний регистр, но минус ее в том, что она не совсем корректно работает с кириллицей.

Для этого мы напишем свою небольшую функцию. Реализация будет выглядеть следующим образом:

  $content = "скажи-ка, дядя, ведь не даром Москва, спаленная пожаром, Французу отдана?"; // Исходная строка echo mb_ucfirst($content); // Получаем результат с первой заглавной буквой ?> 

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

Первая буква строки в верхнем регистре на CSS

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

  

второе предложение

третье предложение

четвертое предложение

С помощью псевдоэлемента «first-letter» и свойства «text-transform» мы задали оформление для каждой первой буквы параграфа.

Первая буква строки в верхнем регистре на jQuery

Как я уже говорил ранее, этот способ преобразования лучше всего подойдет для материалов, которые еще только будут публиковаться.

Для примера мы возьмем текстовое поле (оно будет выступать у нас в качестве поля для ввода заголовка) и напишем для него небольшой скрипт, который при вводе предложения с маленькой буквы делает его с большой:

Скрипт срабатывает как при написании текста, так и простой его вставке. Не забывайте, что для работы скриптов на вашем сайте необходимо наличие подключенной библиотеки jQuery.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *