Программирование > PHP
Как пересести слово в нижний регистр?
kot:
Перевести надо именно слово, написанное ПОЛНОСТЬЮ большими буквами. Задача следующая: Есть текст, в котором некоторые слова пишутся БОЛЬШИМИ буквами. Надо только эти слова перевести в нижний регистр. Причем не допускаются следующие замены:
Слово --> слово,
сЛово --> слово...
Заранее огромное спасибо.
Макс:
Вроде так работает:
<?php
$a="АААа БББ ббб AS";
function my_lowcase($source_text)
{
$regExp=\'/(?<=\\s)([A-ZА-Я]+)(?=\\s|$)/es\';
$res_text=preg_replace($regExp,"strtolower(\'\\\\1\')",$source_text);
return $res_text;
}
echo strtolower($a)."\\n";
echo my_lowcase($a);;
?>
kot:
Не работает :-(
Вот что я вижу при выполнении этого кода:
1) АААа БББ ббб as
Ну, с этим понятно, потому что strtolower работает только с английскими буквами и не делает разницу полностью ли слово написано заглавными или нет...
2) АААа БББ ббб AS - т.е. my_lowcase вообще ничего не делает :-(
В чем тут проблема?
Заранее огромное спасибо.
DaBugi:
$second=strtr($from,"АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЬЪЭЮЯ","абвгдеёжзиклмнопрстуфхцчшщьъэюя");
Соответственно у тебя в from - исходная строка, в second - уже обработанная...
Только алфавит проверьте, я с русским в неладах :)
kot:
Это тоже не то, что надо, потому как переведутся в нижний регистр ВСЕ заглавные буквы (я уже так пробовал), а мне надо (напоминаю в очередной раз:) чтобы пребразовывались слова которые ПОЛНОСТЬЮ написаны большими буквами...
Какие есть еще варианты?
Заранее огромное спасибо.
Навигация
Перейти к полной версии