Что такое код ucfirst


ucfirst — Преобразует первый символ строки в верхний регистр

(PHP 4, PHP 5, PHP 7)

ucfirst — Преобразует первый символ строки в верхний регистр

Описание

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

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

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

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

Возвращает результирующую строку.

Примеры

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

= ‘hello world!’ ;
$foo = ucfirst ( $foo ); // Hello world!

$bar = ‘HELLO WORLD!’ ;
$bar = ucfirst ( $bar ); // HELLO WORLD!
$bar = ucfirst ( strtolower ( $bar )); // Hello world!
?>

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

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

Функция ucfirst() для многобайтовых кодировок символов

Я спросил о strtolower функции. Но при использовании иностранных символов он не преобразует их в верхний регистр, поэтому я должен использовать:

Но что мне делать, если я хочу использовать функцию ucfirst() ? Я не нашел никакой подобной функции, где я могу установить тип кодирования.

Нет функции mb_ucfirst , как вы уже заметили. Вы можете подделать mb_ucfirst двумя mb_substr :

Это более сжатое решение, хотя оно довольно похоже на функцию ucwords :

Если вам нужно загладить строку, состоящую из одного слова, это лучшее решение.

Не работают функции ucfirst, strtolower, strtoupper,

Здравствуйте. Ничего не пойму, поставил сайт на VPS, и перестали работать функции связанные с регистром ucfirst(), strtolower(), strtoupper(). Что делать? Может PHP не настроен? Что подкрутить?

кстати ещё так можно, если нету доступа к настройкам сервера

вот такой вариант гораздо короче:

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

Можно сделать ещё так кстати.


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

Для отправки комментария вам необходимо авторизоваться.

Своя mb_ucfirst функция в PHP

Как-то разрабатывая очередной WordPress плагин, мне понадобился аналог PHP функции ucfirst, только в mb_* интерпретации (т. е. для много байтовых строк). Зайдя на php нет, я был озадачен, такой функции нет. Прошерстив интернет, на stackoverflow было найдено одно (а может и два) решения.

Доработав найденный код, получился следующий результат:

Где:
$strlen — общая длина строки с учетом кодировки (второй параметр нашей ф-и)
$first_char — первый символ строки
$then — все остальные символы (т. е. кроме первого)

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

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

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

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

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

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

Илон Маск рекомендует:  Порисуем Как рисовать в Word, основы

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

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

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

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

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

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

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

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

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

Работа с кодировками в Perl

На хабре уже есть хорошая статья об использовании UTF-8 в Perl — habrahabr.ru/post/53578. Я все же немного по своему
хотел бы рассказать о кодировках.

Очень много вопросов связано с многообразием кодировок, а также используемой терминологией. Кроме того, многие из нас сталкивались с проблемами, которые связаны с кодировками. Я постараюсь в этой статье написать в понятной форме информацию по этому вопросу. Начну с вопроса автоматического определения кодировки текста.

Определение кодировки исходного файла. Определение кодировки исходного документа, задача которая довольно часто встречается на практике. Возьмем как пример браузер. Кроме html файла он также может получать в HTTP ответе заголовок, который задает кодировку документа и этот заголовок может быть не правильным, поэтому ориентироваться только на него нельзя, как следствие, браузеры поддерживают возможность автоматической определения кодировки.

В Perl для этого вы можете использовать Encode::Guess, однако более «продвинутым» промышленным вариантом является Encode::Detect::Detector. Как написано в документации к нему, он предоставляет интерфейс к Мозиловскому универсальному определителю кодировки.

Если вы будете изучать исходный код, обратите внимание на файл vnsUniversalDetector.cpp и метод


nsresult nsUniversalDetector::HandleData(const char* aBuf, PRUint32 aLen)

Из этого метода начинается вся работа по определению кодировки. Вначале определяется, есть ли BOM заголовок, если да то дальнейшее определении кодировки выполняется простым сравнением начальных байтов данных:

  • EF BB BF UTF-8 encoded BOM
  • FE FF 00 00 UCS-4, unusual octet order BOM (3412)
  • FE FF UTF-16, big endian BOM
  • 00 00 FE FF UTF-32, big-endian BOM
  • 00 00 FF FE UCS-4, unusual octet order BOM (2143)
  • FF FE 00 00 UTF-32, little-endian BOM
  • FF FE UTF-16, little endian BOM

Далее анализируется каждый байт данных и анализируется относится ли символ к не US-ASCII (коды от 128 до 255) если да то создаются объекты классов:

  • nsMBCSGroupProber;
  • nsSBCSGroupProber;
  • nsLatin1Prober;

каждый из которых отвечает за анализ групп кодировок (MB – мультибайтовые, SB – однобайтовые).

Если же это US-ASCII то здесь 2-а варианта, либо это обыкновенный ASCII (pure ascii) либо файл содержащий escape последовательности и относится к таким кодировкам как ISO-2022-KR и т.п. (более подробно — en.wikipedia.org/wiki/ISO/IEC_2022). В этом случае используется детектор реализованный классом nsEscCharSetProber.

nsMBCSGroupProber поддерживает такие кодировки как: «UTF8», «SJIS», «EUCJP», «GB18030», «EUCKR», «Big5», «EUCTW».

nsSBCSGroupProber – такие как Win1251,koi8r,ibm866 и другие.

Определение однобайтовой кодировки базируется на анализе частоты вхождения 2-ух символьных последовательностей в текст.

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

Unicode и Perl. Исторический ракурс. Согласно www.unicode.org/glossary в Unicode есть 7 возможных схем кодирования: UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE. Для самого термина Unicode дано следующее определение «…стандарт цифрового представления символов, которые используются в письме всеми языками мира…». Кроме этого также существует UTF-7, которая не является частью стандарта, но поддерживается Perl — Encode::Unicode::UTF7 (см.также RFC 2152).

Илон Маск рекомендует:  Что такое код asp exitmessage

UTF-7 практически не используется. Вот что написано в Encode::Unicode::UTF7 – «…Впрочем, если вы хотите использовать UTF-7 для документов в почте и веб страниц, не используйте ее, пока не удостоверетесь что получатели и читатели (в смысле этих документов) могут обрабатывать эту кодировку…».

Разработчики Perl следуя прогрессу в части повсеместной реализации кодировок Unicode в приложениях, также реализовали поддержку Unicode в Perl. Кроме того модуль Encode поддерживает также другие кодировки как однобайтовые так и многобайтовые, список которых можно просмотреть в пакете Encode::Config. Для работы с письмами, поддерживаются «MIME кодировки»: MIME-Header, MIME-B, MIME-Q, MIME-Header-ISO_2022_JP.

Следует сказать, что UTF-8 очень широко распространена в качестве кодировки для веб документов. UTF-16 используется в Java и Windows, UTF-8 и UTF-32 используется Linux и другими Unix-подобными системами.

Начиная с версии Perl 5.6.0 была изначально реализована возможность работы с Unicode. Тем не менее, для более серьезной работы с Unicode был рекомендован Perl 5.8.0. Perl 5.14.0 – первая версия в которой поддержка Unicode легко (почти) интегрируемая без нескольких подводных камней (исключения составляют некоторые различия в quotemeta). Версия 5.14 также исправляет ряд ошибок и отклонений от стандарта Unicode.

Visual Studio 2012 и кодировки (для сравнения с Perl). Когда мы пишем некоторое приложение на C# в Visual Studio мы не задумываемся о том, в какой кодировке все это хранится и обрабатывается. При создании документа в Vistual Studio она создаст его в UTF8 и еще добавит в заголовок BOM UTF8 — последовательность байтов 0xEF, 0xBB, 0xBF. Когда же мы конвертируем исходный файл (уже открытый в Visual Studio), например, с UTF8 в CP1251 то получим сообщение об ошибке
Some bytes have been replaced with the Unicode substitution character while loading … with Unicode (UTF-8) encoding. Saving the file will not preserve the original file contents.

Если открыть существующий файл в cp1251 – ToUpper(), например, будет отрабатывать корректно, а если конвертировать файл в KOI8-R а потом открыть в Visual Studio и выполнить, ни о какой корректной работе не может быть и речи, здесь среда не знает, что это KOI8-R, да и как она это может узнать?

“Unicode Bug в Perl”. Так же как и в Visual Studio, что-то похожое происходит и с программой на Perl, но разработчики Perl могут явно указывать кодировку исходного кода приложения. Вот почему когда начинающие программировать на perl открывают на русскоязычной Windows XP свой любимый редактор и в ANSI (тоесть cp1251) пишут что-то в духе

а на выходе получают, что строки в переменных не равны, им вначале сложно понять, что происходит. Аналогичные вещи происходят с регулярными выражениями, строковыми функциями (но uc($c) будет работать корректно).

Это так называемый «Unicode Bug» в Perl (более подробно смотрите в документаци), связанный с тем, что для разных однобайтовых кодировок, символы с кодами от 128 до 255 будут иметь разный смысл. Например, буква П в cp1251 – имеет код 0xCF, тогда как в CP866 – 0x8F, а в KOI8-R – 0xF0. Как в таком случае, отработать правильно таким строковым функциям как uc(), ucfirst(), lc(), lcfirst() или \L, \U в регулярных выражениях?

Достаточно «подсказать» интерпретатору, что кодировка исходного файла cp1251 и все будет работать правильно. Более точно в приведенном ниже коде, переменные $a и $b будут хранить строки во внутреннем формате Perl.

Внутренний формат строк в Perl. В не очень старых версиях Perl строки могут хранится в так называемом внутреннем формате (Perl’s internal form). Обратите внимание, что также они могут хранится как просто набор байтов. В примере выше, там, где явно не задавалась кодировка исходного файла (с помощью use encoding ‘cp1251’;) переменные $a, $b, $c хранят просто набор байтов (еще в документации к Perl используется термин последовательность октетов — a sequence of octets).

Внутренний формат от набора байтов отличается тем, что используется кодировка UTF-8 и для переменной включен флаг UTF8. Приведу пример. Изменим немного исходный код программы на следующий

Вот, что мы получим в результате

SV = PV(0x199ee4) at 0x19bfb4
REFCNT = 1
FLAGS = (PADMY,POK,pPOK,UTF8)
PV = 0x19316c «\321\201\320\273\320\276\320\262\320\276″\0 [UTF8 «\x<441>\x<43b>\x<43e>\x<432>\x<43e>«]
CUR = 10
LEN = 12

Илон Маск рекомендует:  Тег nav

Обратите внимание, что FLAGS = (PADMY,POK,pPOK,UTF8). Если мы уберем use encoding ‘cp1251’;
то получим


SV = PV(0x2d9ee4) at 0x2dbfc4
REFCNT = 1
FLAGS = (PADMY,POK,pPOK)
PV = 0x2d316c «\321\201\320\273\320\276\320\262\320\276″\0
CUR = 10
LEN = 12

Когда мы указываем, что исходный код файла в кодировке cp1251 или какой-либо другой то Perl знает, что нужно конвертировать строковые литерали в исходном коде из указанной кодировки во внутренний формат (в данном случае из cp1251 во внутренний формат UTF-8 )и делает это.

Аналогичная проблема определения кодировки возникает при работе с данными получаемыми «извне», например файлов или веб. Рассмотрим каждый из случаев.

Пусть у нас есть файл в кодировке cp866, который содержит слово «Когда» (в текстовом файле слово Когда с большой буквы). Нам необходимо открыть его и проанализировать все строки на предмет нахождения слова «когда». Вот как это сделать правильно (при этом сам исходный код должен быть в utf8).

Обратите внимание, что в случае если мы не будем использовать » UTF8 + включает флаг UTF8).

Следующий пример, мы получаем страницу с помощью LWP::UserAgent. Вот правильний пример, как это нужно делать.

Обратите внимание на вызов $content = decode(‘utf8’,$content).

LWP::UserAgent работает с байтами, он не знает, и это не его забота, в какой кодировке страница в однобайтовой cp1251 или в UTF8, мы должны явно указывать это. К сожалению, много литературы содержит примеры на английском языке и для более старых версий Perl, как следствие, в этих примерах нет ничего о перекодировке.

Например, роботы поисковых систем (или другой код), должны не только правильно определять кодировку страниц, не используя заголовки ответов серверов или содержимое HTML тега meta, которые могут быть ошибочными, но и определять язык страницы. Поэтому не думайте, что все вышесказанное должны делать только программисты на Perl.

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

В примере, в котором мы открывали текстовый файл в CP866 мы можем не указывать Теги:

  • Perl
  • кодировки

Добавить метки

Что такое код ucfirst

ucfirst — переводит первый символ строки в верхний регистр.

Описание

string ucfirst (string str)

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

Заметьте, что ‘алфавитный’ определяется текущей locale. Например, в локализации по умолчанию «C» такие символы, как umlaut-a, не будут конвертироваться.

Пример 1. ucfirst()

$foo = ‘hello world!’; $foo = ucfirst($foo); // Hello world! $bar = ‘HELLO WORLD!’; $bar = ucfirst($bar); // HELLO WORLD! $bar = ucfirst(strtolower($bar)); // Hello world!

Linux.yaroslavl.ru

Учебник РНР
Назад Вперёд

ucfirst — переводит первый символ строки в верхний регистр.

Описание

string ucfirst (string str)

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

ucFirst


Transforms the first letter of a string to uppercase or the first letter of each word, and optionally lowercase uppercase characters.

ucFirst(string [, doAll] [, doLowerIfAllUppercase]) → returns string

Member Function Syntax

ucFirst Argument Reference

string string

doAll boolean

doLowerIfAllUppercase boolean

Examples sample code invoking the ucFirst function

Basic usage

Lucee 4.5+ Capitalizes the first character of the first word only.

Expected Result: Hello world!

Capitalize all the words in string

Lucee 4.5+ Using the optional doAll parameter capitalizes the first character of all words. Word separators are: whitespace, period, parenthesis, or dash.

Expected Result: Cfdocs.Org Is Your (Everyone’s) Resource For Cf-Related Documentation!

Handling of strings in all uppercase

Lucee 4.5+ Using the optional doLowerIfAllUppercase parameter allows for intelligent capitalization of words in all caps.

ucfirst

описание

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

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

Декларация ucfirst

string ucfirst ( string $str )

Тест ucfirst онлайн

share ucfirst

комментарии для ucfirst

комментарии для ucfirst

Прочитайте все комментарии для ucfirst() здесь.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL