Как перевести 7-ю букву строки в верхний регистр?

12
P
На сайте с 06.01.2009
Offline
601
#11
mfl:
postavkin, Ни чего не надо разбивать, приведите строку полностью, и что должно быть в итоге?

Вот исходная в массиве

echo ('уникальный материал, который преобразит помещение до неузнаваемости');

нужно получить

echo ('Уникальный материал, который преобразит помещение до неузнаваемости');

postavkin добавил 08.08.2011 в 23:07

mfl:
перед выполнением вставьте:
setlocale(LC_ALL, 'ru_RU.CP1251', 'ru_SU.CP1251', 'Russian_Russia.1251', 'ru_RU', 'russian', 'ru_SU', 'ru');

Не помогает. Всё также может переводить только 0-й символ. Даже следующие в слове echo не переводит.

mfl
На сайте с 16.10.2006
Offline
134
mfl
#12

"У" это 8й символ.

setlocale(LC_ALL, 'ru_RU.CP1251', 'ru_SU.CP1251', 'Russian_Russia.1251', 'ru_RU', 'russian', 'ru_SU', 'ru');

$str{7} = strtoupper($str{7});

$str - заменяете на название вашей переменной

[Удален]
#13

Попробуйте так:

$low = array ('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ы', 'ъ', 'э', 'ю', 'я');
$up = array ('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ы', 'Ъ', 'Э', 'Ю', 'Я');
$str[6] = str_replace($low, $up, strtoupper($str[6]));
P
На сайте с 06.01.2009
Offline
601
#14
mfl:
"У" это 8й символ.

Не работает.

setlocale(LC_ALL, 'ru_RU.CP1251', 'ru_SU.CP1251', 'Russian_Russia.1251', 'ru_RU', 'russian', 'ru_SU', 'ru');

$qwert[$stroka]{7} = strtoupper($qwert[$stroka]{7});
mfl
На сайте с 16.10.2006
Offline
134
mfl
#15

postavkin, русская локаль установлена?

при использовании латинских символов тоже не работает?

попробуйте код sebe, не зависит от локали

P
На сайте с 06.01.2009
Offline
601
#16
mfl:
postavkin, русская локаль установлена?
при использовании латинских символов тоже не работает?

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

postavkin добавил 08.08.2011 в 23:30

mfl:
попробуйте код sebe, не зависит от локали

Не работает.

	$low = array ('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ы', 'ъ', 'э', 'ю', 'я');

$up = array ('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ы', 'Ъ', 'Э', 'Ю', 'Я');
$file = $qwert[$stroka];
$file[7] = str_replace($low, $up, strtoupper($file[7]));
$qwert[$stroka] = $file;

postavkin добавил 08.08.2011 в 23:43

Ребят, жесть, но работает только такой вариант.


<?php
$slova = array();
$qwert[$stroka] = "echo ('уникальный материал, который преобразит помещение до неузнаваемости');";
echo "первоначальная строка = $qwert[$stroka] <br>";

// разобьем строку на слова
$slova = explode(" ", $qwert[$stroka]);
//удалим из первого слова 2 символа слова ('
$slova[1] = substr_replace($slova[1], '', 0, 2);
$file = $slova[1];
//переводим в верхний регистр
$low = array ('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ы', 'ъ', 'э', 'ю', 'я');
$up = array ('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ы', 'Ъ', 'Э', 'Ю', 'Я');
$file[0] = str_replace($low, $up, strtoupper($file[0]));

$file = "('".$file; // вернем начало слова
$slova[1] = $file;
$comma_separated = implode(" ", $slova);
$qwert[$stroka] = $comma_separated;
echo "вот что получили = $qwert[$stroka] <br>";
?>
D
На сайте с 09.07.2009
Offline
79
#17

postavkin, уйдите от установки локали, делайте именно так.

P
На сайте с 06.01.2009
Offline
601
#18
digwnews:
postavkin, уйдите от установки локали, делайте именно так.

Переживаю, только за одно. Чтобы контент мне не перевернула такая штука.

postavkin добавил 09.08.2011 в 00:02

sebe, спасибо! Все ребят, спасибо.

n0name
На сайте с 22.12.2006
Offline
54
#19

mb_internal_encoding('utf-8');

$upper_char_pos = 7;

$input_str = "echo ('уникальный материал, который преобразит помещение до неузнаваемости');";

$char = mb_substr($input_str, $upper_char_pos, 1);
$upper_char = mb_strtoupper($char);
$output_str = mb_substr($input_str, 0, $upper_char_pos - 1)
. $upper_char
. mb_substr($input_str, $upper_char_pos + 1);

echo $output_str;

Лучше так. И с контентом будет все нормально. Главное установите правильную кодировку в первой функции.

Сервис сравнения цена на VPS (http://vpska.com/)
12

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