Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2011, 18:46   #1
snikers987
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 63
По умолчанию Регистронезависимое сравнение строк

есть строки:
Код:
$a = 'СТРОКА';
$b = 'строка';
if($a == $b)
{echo "Строки совпадают";}
else {echo "Строки не совпадают";}
Как проверить совпадение регистронезависимо, хочу сделать ответ на секретный вопрос регистронезавсимым.
Тоесть если пользователь ввел Ответ либо ответ либо отвеТ скрипт считал его правильным.

Сейчас сделал перевод всех символов в нижний регистр:
Код:
<?php
$a = 'СТРОКА';
$b = 'строка';
if(strtolower($a) == strtolower($b))
{echo "Строки совпадают";}
else {echo "Строки не совпадают";}
?>
Но интересно, может есть другие варианты?

Последний раз редактировалось snikers987; 23.04.2011 в 18:56.
snikers987 вне форума Ответить с цитированием
Старый 23.04.2011, 19:05   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Ещё для сравнения строк можно использовать функцию strcasecmp()
Andkorol вне форума Ответить с цитированием
Старый 29.04.2011, 08:36   #3
mr.allty
Пользователь
 
Регистрация: 22.03.2011
Сообщений: 23
По умолчанию

Можно использовать и функцию strnatcasecmp ( string $str1 , string $str2 ). Она также сравнивает строки без учета регистра, но при этом использует алгоритм "естественного упорядочивания"
"Сильный" программист
mr.allty вне форума Ответить с цитированием
Старый 29.04.2011, 11:54   #4
Astman
Новичок
Джуниор
 
Аватар для Astman
 
Регистрация: 29.04.2011
Сообщений: 2
По умолчанию

Еще вариант
Код:
preg_match("/^string$/i", $str);
Astman вне форума Ответить с цитированием
Старый 29.04.2011, 12:30   #5
Linel
Форумчанин
 
Аватар для Linel
 
Регистрация: 21.02.2009
Сообщений: 372
По умолчанию

Как вариант, можно привести 2 строки к нижнему регистру и сравнить
No name. Just Linel.
Linel вне форума Ответить с цитированием
Старый 03.05.2011, 13:20   #6
graymaster
Форумчанин
 
Аватар для graymaster
 
Регистрация: 03.05.2011
Сообщений: 158
По умолчанию

strtolower() если LOCALE выставлен русский. Если нестандартная кодировка, strtolower() может не работать, тогда нужно либо выставить нужный LOCALE, либо использовать функции сравнения строк в iconv или mbstring (кажется там такие были)
graymaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение строк в C# Павел111 Помощь студентам 3 17.12.2010 17:26
Сравнение строк Hemul Общие вопросы C/C++ 5 19.11.2010 20:36
Сравнение строк Dasharnb777 Общие вопросы .NET 5 22.09.2010 20:46
Макрос на сравнение и подсчет в первом столбце строк, и сумирование значений этих строк в другом столбце Shpr0T Microsoft Office Excel 8 30.08.2010 17:52
Сравнение строк Rivendell Microsoft Office Excel 8 18.12.2009 10:29