есть строка значений:
$existing_names=array('ИМЯ1','NAME','ИМЯ','ИМЯ2');
$postname=$_POST['postname'];
преобразуем значение полученное с другой страницы методом post в верхний регистр (значение - какое - нибудь русское имя, например ИМЯ)
$strname="mb_strtoupper($postname, 'UTF-8')";
И далее делаем проверку на существование слова в нашей строке значений $existing_names:
if (in_array($strname, $existing_names))
{
//недоступено
echo "no";
}
else
{
//доступено
echo "yes";
}
}
код отлично работает с английскими буквами
Но если я использую русские слова, появляется проблема проблема: результат - всегда yes, если я пишу
if (in_array("ИМЯ", $existing_domains)), тогда результат no -
Подскажите в чем ошибка, почему если написать if (in_array($strname, $existing_names)) проверка не работает, а если if (in_array("ИМЯ", $existing_names)), тогда работает ?
И как правильно написать, чтобы первоначальный вариант работал с русскими буквами??
Спустя 13 минут, 11 секунд (2.12.2010 - 15:16) redasar написал(а):
есть конечно вариант? но это костыль по моему, зато будет работать посли приема параметов переводить их в транслит если параметр это строка с русскими символами. можно конечно яваскритом это делать перед отправкой если можно передавать параметры методом GET. если вопрос сстоит в том будет ли видно их в адресной строке браузера тогда можно их опять же отдавать метедом GET отлько в асинхронном режиме с помощью аякса
Спустя 4 часа, 18 минут, 20 секунд (2.12.2010 - 19:34) Strannik написал(а):
а нет другого решения проблемы?
Спустя 3 часа, 8 минут, 44 секунды (2.12.2010 - 22:43) kirik написал(а):
Цитата (redasar @ 2.12.2010 - 07:16) |
Подскажите в чем ошибка |
А ты пробовал выводить эту переменную $strname? И Кстати ты случайно или нет написал в кавычках mb_strtoupper?
$strname="mb_strtoupper($postname, 'UTF-8')";
Спустя 17 минут, 6 секунд (2.12.2010 - 23:00) Strannik написал(а):
пробовал - echo $strname выводит правильный результат
по поводу кавычек - как выяснилось в ходе нескольких экспериментов наличие двойных кавычек или их отсутствие в данном коде роли не играет.
по поводу кавычек - как выяснилось в ходе нескольких экспериментов наличие двойных кавычек или их отсутствие в данном коде роли не играет.
Спустя 26 минут, 8 секунд (2.12.2010 - 23:26) kirik написал(а):
Цитата (Strannik @ 2.12.2010 - 15:00) |
по поводу кавычек - как выяснилось в ходе нескольких экспериментов наличие двойных кавычек или их отсутствие в данном коде роли не играет. |
ээм.. не может быть. если строка в кавычках - это строка, и выполняться код внутри кавычек не будет.
Цитата (Strannik @ 2.12.2010 - 15:00) |
echo $strname выводит правильный результат |
А выведи так
echo $strname . '-' . $existing_names[0] . ': '. ($strname == $existing_names[0]);где $strname и $existing_names[0] заведомо равны.
Спустя 16 часов, 12 минут, 37 секунд (3.12.2010 - 15:39) Strannik написал(а):
смысл? - это не есть решение если они заведомо равны - мне нужен поиск из множества значений.
P/S/: кстати вчера перетрудился, когда сказал, что кавычки роли не играют, но все равно без ни од не ищет русские слова...
P/S/: кстати вчера перетрудился, когда сказал, что кавычки роли не играют, но все равно без ни од не ищет русские слова...
Спустя 35 минут, 47 секунд (3.12.2010 - 16:14) twin написал(а):
Ты чего то недоговариваешь. Все это работает у меня.
Спустя 1 день, 40 минут, 22 секунды (4.12.2010 - 16:55) Strannik написал(а):
twin
работает поиск русских слов? в каком решении?
работает поиск русских слов? в каком решении?
Спустя 2 часа, 10 минут, 14 секунд (4.12.2010 - 19:05) T1grOK написал(а):
Зачем функцию в кавычки взял??? Она будет воспринята как строковый литерал, а не как функция. Вот так все прекрасно работает:
$existing_names=array('ИМЯ1','NAME','ИМЯ','ИМЯ2');
$strname=mb_strtoupper($postname, 'UTF-8');
if (in_array($strname, $existing_names)){
echo "Есть совпадение";
}else{
echo "Совпадений нет";
}
Спустя 3 часа, 1 минута, 50 секунд (4.12.2010 - 22:07) kirik написал(а):
Цитата (Strannik @ 3.12.2010 - 07:39) |
смысл? - это не есть решение если они заведомо равны - мне нужен поиск из множества значений. |
Смысл в том, чтобы предоставить хотя бы немного данных о том, что творится у тебя.
Гм.. кстати случаем не денвер у тебя?
Спустя 2 часа, 55 минут, 35 секунд (5.12.2010 - 01:03) Strannik написал(а):
нет
а то, что с кавычками намудрил, я уже раньше говорил...
а то, что с кавычками намудрил, я уже раньше говорил...