postavkin

Рейтинг
601
Регистрация
06.01.2009

Ragnarok , спасибо большущее!

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

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

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

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

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>";
?>
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:
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:
э - первый символ. следовательно 6 замените на 0

Получилось вместо

echo ('
=
Echo ('

Почему то русскую букву "э" не переводит.

Работает только при значении =0


$str = $qwert[$stroka];
$str{0} = strtoupper($str{0});
$qwert[$stroka] = $str;
mfl:
э - первый символ

в массиве вся строка, вместе с echo. Этот оператор не считается что ли? Сейчас попробую 😒

postavkin добавил 08.08.2011 в 22:57

Алексей Барыкин:
Вам бы определиться что переводить в верхний регистр - 7-й символ, 1-й символ или первое слово...

Если не разбирать строку, а оставить исходной, то нужно перевести 7-й символ строки

echo ('шикарный...
в верхний регистр. Букву "ш".

Если разбить строку, сперва удалить из строки

echo ('
, потом можно перевести первую букву первого слова в верхний регистр и вернуть на место echo.

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

dma84:
И чо, она седьмая?😮

echo ('эта серия мрамора способна...

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

В принципе я уже пробую удалить первую часть строки -

echo ('
,

но все равно не найти функцию, которая переведет именно первое слово в верхний регистр.

mfl:
$str{6} = strtoupper($str{6});

Не получается.

Есть строка

echo ('эта серия мрамора способна...

Она в ячейке массива

$qwert[$stroka]

Надо перевести в верхний регистр букву "э".

Дикий пионер:
Регуляркой?
$text = preg_replace('%<b>.+?</b>%i', '', $text);

Вариант отличный, попробую. Спасибо

Всего: 5509