PHP Увеличить регистр первой буквы

12
[Удален]
1770

Собствено сабж. Почему-то не увеличивает.

<?php 

$slovoAllFile = array('aaa.txt', 'bbb.txt', 'ccc.txt', 'ddd.txt');
$rand_keys = array_rand($slovoAllFile);
$slovoRezultFile = $slovoAllFile[$rand_keys] ;
$slova = file($slovoRezultFile);
$slovoRezult = trim($slova[array_rand($slova, 1)]);
$slovoRezult = ucfirst($slovoRezult);
echo $slovoRezult
?>

В файлах слова и словосочитания полностью из русских букв нижнего регистра.

Хелп.

SS
На сайте с 04.04.2009
Offline
43
s_s
#1

По-моему для русского надо локаль указать, что бы работало как надо...

Если мне память не изменяет... Что-такое было уже.

вот темка была: /ru/forum/277017

LEOnidUKG
На сайте с 25.11.2006
Online
1774
#2

function my_ucfirst($string, $e ='utf-8') {

if (function_exists('mb_strtoupper') && function_exists('mb_substr') && !empty($string)) {

$string = mb_strtolower($string, $e);

$upper = mb_strtoupper($string, $e);

preg_match('#(.)#us', $upper, $matches);

$string = $matches[1] . mb_substr($string, 1, mb_strlen($string, $e), $e);

} else {

$string = ucfirst($string);

}

return $string;

}

$text='мой текст';

$text=my_ucfirst($text);

Кодировку только свою впишите.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
SS
На сайте с 04.04.2009
Offline
43
s_s
#3

LEOnidUKG, жесть какая...

локаль надо указать, вот решение, инфа 100%

[umka]
На сайте с 25.05.2008
Offline
456
#4

setlocale(LC_CTYPE,"ru_RU.UTF-8"); // или какая у вас там кодировка используется

Лог в помощь!
LEOnidUKG
На сайте с 25.11.2006
Online
1774
#5
s_s:
LEOnidUKG, жесть какая...
локаль надо указать, вот решение, инфа 100%

А в той теме не я ли предлагал решение? 😂

---------- Добавлено 28.02.2012 в 19:39 ----------

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

[umka]
На сайте с 25.05.2008
Offline
456
#6
LEOnidUKG:
У меня такие функции, чтобы потом юзера не надо было втыкать о том, что у них на серваке нет локали, а поставил и всё работает.

Это опасный путь! :)

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

Мало ли, библиотеки какой в системе нету. Зачем юзера этим грузить )

[Удален]
#7

Воткнул локаль в начале своего скрипта. Результата нет. Или надо сделать что-то ещё?

Кодировка ютф8, всё проверяется на локальном хосте, если это важно.

[umka]
На сайте с 25.05.2008
Offline
456
#8
LenTax:
Кодировка ютф8, всё проверяется на локальном хосте, если это важно.

Сделайте так

$locale=setlocale(LC_CTYPE,"ru_RU.UTF-8");

и посмотрите, что в этой переменной.

Внимательно прочитайте доку про локали:

http://php.net/manual/ru/function.setlocale.php

[Удален]
#9

LEOnidUKG, разобрался с вашим скриптом. Почти работает как надо)

Прикрутив к своему скрипту и проверив, увидел, что почему-то, если из файла взялась первая строка, то скрипт не преобразовывает первую букву в верхний регистр!!

А в остальных случаях всё гуд.

---------- Добавлено 28.02.2012 в 17:33 ----------

[umka], Вывел, результат: ru_RU.UTF-8

Глянул фак. Непонятно как это прикручивается к тому, что мне надо.

LEOnidUKG
На сайте с 25.11.2006
Online
1774
#10
LEOnidUKG, разобрался с вашим скриптом. Почти работает как надо)
Прикрутив к своему скрипту и проверив, увидел, что почему-то, если из файла взялась первая строка, то скрипт не преобразовывает первую букву в верхний регистр!!
А в остальных случаях всё гуд.

Смотрите, может быть там перевод каретки есть ИЛИ там символ BOM стоит.

Это опасный путь!

Зато никто в аське не долбит и потом не пишет, мол ваш скрипт ГАВНО, а мой хостинг няшка я с ним уже год, всё пашет, а ваш УГ скрипт нет. :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий