Strtolower удаляет из строки цифры.

Статус
В этой теме нельзя размещать новые ответы.

MegO

Постоялец
Регистрация
13 Фев 2009
Сообщения
130
Реакции
13
Подаю strtolower строку состоящую из ру букв и цифр.
Возвращает только буквы, а цифры вырезает.
Код приводить не буду т.к. ничего хитрого там нет.
Платформа - windows. Запускаю на денвере.
Думал может проблема в локале, но с алфавитом работает правильно.
Подскажите, в чём может быть проблема?
 
Попробуй :

1. mb_strtolower()
2. mb_convert_case($string, MB_CASE_LOWER, "CP1251")

( Один из вариантов. )
 
может у тебя в коде где-то ошибка? проверил
echo strtolower('АРНЛ76НОТ');
результат:
арнл76нот

все работает правильно
 
Попробуй :
1. mb_strtolower()
2. mb_convert_case($string, MB_CASE_LOWER, "CP1251")
( Один из вариантов. )

Не работает :)

может у тебя в коде где-то ошибка? проверил
echo strtolower('АРНЛ76НОТ');
результат:
арнл76нот

все работает правильно

Это всё понятно что правильно должно работать.
echo до strtolower с цифрами, после - без цифр.
Дело ещё в том, что использую phpmorphy в этом скрипте, может он устанавливает какие-то настройки специфические.
 
Код приводить не буду т.к. ничего хитрого там нет.
Как показывает практика, время поиска непонятной ошибки прямо пропорционально ее тупизне :) Поэтому выложи код побольше.
 
Как показывает практика, время поиска непонятной ошибки прямо пропорционально ее тупизне :) Поэтому выложи код побольше.

$textstr=implode(' ', $textarray[0]);
$textstr=ucfirst(strtolower($textstr));

Вот код)
Всё что выше него, это формирование $textstr, запросы из базы и прочее.

Ещё раз повторяю echo до $textstr=ucfirst(strtolower($textstr)); выводит строку с цифрами.

echo после $textstr=ucfirst(strtolower($textstr)); выводит уже без цифр.

Думаю, что проблема в каких либо установках типо локали, не сталкивался с таким по этому не знаю.
 
А может ucfirst чудит?
 
И что же выводит это самое echo?

Строки каждый разные, какая бы строка ни была проблема с цифрами всё равно возникает.

А может ucfirst чудит?

Пробывал убирать ucfirst, ошибка осталась.

Добавлено через 18 минут
Проблему решил сам. Оказалось дело совсем в другом, поспешил. Регулярка не правильная была.
Всем спасибо за ответы, правда флуд получился, а не топик...
Извините :)

P.S. Спать - полезно.
 
передай в функцию текст напрямую, а не из базы:

echo strtolower('abc555def');
echo strtolower('абв555где');
echo strtolower('qwerty');
echo strtolower('йцукенг');
echo strtolower('9876543210');

что выведет?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху