![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| новичок |
|
|||
|
Unregistered |
Нужно найти подстроку в строке без учера регистра.
На локальном компе находит, а на серверах нет. То же самое, но с латинскими буквами, работает нормально, а вот с кирилицей нет... Это особенность php под юниксом такая или что ? $s="СтРоКа"; $s1=strtolower($s); $l="ТР"; $l1=strtolower($l); $pos=strpos($s1,$l1); if ($pos === false) print "Not found"; else print "pos=$pos"; |
|||
|
||||
| Devorior |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 559 Регистрация: 1.8.2002 Где: Обнинск Репутация: 1 Всего: 3 |
попробуй конвертнуть в KOI8-R : $s = convert_cyr_string($s, "w", "k");
|
|||
|
||||
| новичок |
|
|||
|
Unregistered |
так у меня и так все в KOI-8... Если у меня файл в кодировки кои-8, то все равно надо конвертировать ? |
|||
|
||||
| BlackWolf |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 2.4.2003 Репутация: нет Всего: нет |
Не знаю попробовал и на Windows и на Unix - все работает.
Взял весь твой пример и просто вставил его в скрипт выдает : pos = 1 |
|||
|
||||
| новичок |
|
|||
|
Unregistered |
а я на двух серверах попробовал - и ни на одном не работает прям мистика какая-то.... |
|||
|
||||
| Devorior |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 559 Регистрация: 1.8.2002 Где: Обнинск Репутация: 1 Всего: 3 |
да, у меня тоже везде работало =\
|
|||
|
||||
| VVP |
|
|||
|
Unregistered |
Слушай, а у теба в последней строке кода 3 равно или опечатка? Надо бы 2
|
|||
|
||||
| Foxx |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 19.3.2003 Где: Новосибирск Репутация: нет Всего: нет |
Это не очепятка |
|||
|
||||
| Mark.dll |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 28.2.2003 Где: Эстония, Нарва Репутация: нет Всего: нет |
=== проверяет точно ли равно полезно использовать, т.к. при == пустые строки считаются за 0 и наоборот только вот не равно почему-то не пашет... я имею ввиду !=== Хотя в книге именно так и написано. А если по теме: наверное просто дело в php.ini или настройках локалей... хотя я в этом точно не разбираюсь. --------------------
"I wish I could change the world..." |
||||
|
|||||
| Mark.dll |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 28.2.2003 Где: Эстония, Нарва Репутация: нет Всего: нет |
Хотя.... были случаи у меня, когда именно === запарывались. попробуй заменить на ==
--------------------
"I wish I could change the world..." |
|||
|
||||
| новичок |
|
|||
|
Unregistered |
результат работы функции strpos в php4 только так и можно проверить (===). А (==) ничего не даст. Ведь нулевое значение, тоже результат. А в php3 результат работы этой функции проверяется вот так: if (is_string ($pos) && !$pos) // подстрока не найдена А в php4 эта конструкция не работает, по крайней мере у меня. А что касается самой проблемы, то на серверах где я пробовал свой скрипт, функция strtolower() не обрабатывает русские буквы. Почему - не понятно. Я написал свою функцию strtolow() и все заработало, но хотелось бы все таки использовать библиотечную функцию... |
|||
|
||||
| Mark.dll |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 28.2.2003 Где: Эстония, Нарва Репутация: нет Всего: нет |
Вырезка из мануала: Note that 'alphabetic' is determined by the current locale. This means that in i.e. the default "C" locale, characters such as umlaut-A (Ä) will not be converted.
Тоесть дело в локали... измени её, если это разрешено. --------------------
"I wish I could change the world..." |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |