Замена первой буквы в строке на заглавную
Нужно заменить первую букву на любом языке в строке на заглавную, а остальные оставить в нижнем регистре, перепробовал уже всё, что мог и понимаю, что только через регулярные выражения возможно выполнить это.
Что бы я не делал, вылетает ошибка или выводится пустая строка.
Ответы (4 шт):
Если я правильно понял то вот один из вариантов:
$data = 'slovo';
echo mb_convert_case($data, MB_CASE_TITLE, "UTF-8");
Предыдущий вариант не совсем верен. Он переводит в верхний регистр первую букву КАЖДОГО слова в строке. А по условиям задачи нужно только первую букву в строке.
$str = 'Ваша строка на любом языке';
echo mb_convert_case(mb_substr($str, 0, 1), MB_CASE_UPPER, "UTF-8").mb_convert_case(mb_substr($str, 1, mb_strlen($str) -1 ), MB_CASE_LOWER, "UTF-8");
А что не так с функцией ucfirst? Работает начиная с 4 версии.
<?php
$foo = 'hello world!';
$foo = ucfirst($foo); // Hello world!
Ссылка на официальную документацию: https://www.php.net/manual/ru/function.ucfirst.php
$str = 'Ваша строка на любом языке';
echo mb_convert_case(mb_substr($str, 0, 1), MB_CASE_UPPER, "UTF-8").mb_convert_case(mb_substr($str, 1, mb_strlen($str) -1 ), MB_CASE_LOWER, "UTF-8");
Очень интересный, у меня не работает mb_string, поэтому и задал вопрос.
Оказывается я неправильно юзал ucfirst и ничего не выдавало.