Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Обход регистрозависимости переменных

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: подстановка перемнных в массив
g200
Отправлено: 16 Декабря, 2013 - 16:50:33
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Подскажите как временно в некотором участке кода можно отключить или обойти регистрозависимость переменных ?
Например, big_array это подключаемый внешний файл в 15 МБ, менять я его не могу, ключи в нем имеют рандомный регистр у отдельных ключей. От пользователя приходит строка всегда в нижнем регистре. Как теперь сделать так, чтобы регистр строки от пользователя и регистр ключа в массиве были одинаковыми, либо чтобы PHP подставлял переменную в виде ключа массива, но без учета ее регистра...
CODE (text):
скопировать код в буфер обмена
  1. $big_array = array('kEyS_1'=>'значение 1'...,'KEys_12637'=>'значение 12637');
  2. $user = "keys_1";
  3. echo $big_array["$user"]; // ошибка
 
 Top
caballero
Отправлено: 16 Декабря, 2013 - 16:59:13
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




привести все к одному регистру


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
g200
Отправлено: 16 Декабря, 2013 - 18:17:30
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




caballero пишет:
привести все к одному регистру


так я не могу менять внешний файл, вы имеете ввиду создать его копию у себя ? так он обновляется постоянно, то есть мне надо синхронизировать все это дело ?
 
 Top
teddy
Отправлено: 16 Декабря, 2013 - 18:24:56
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Если от пользователей приходит все в нижнем регистре то можно привести ключи массива в соответствующий регистр.
PHP:
скопировать код в буфер обмена
  1. $arr = array("FiRsT" => 1, "SeCoNd" => 2);
  2. $lowercase = array_change_key_case($arr, CASE_LOWER);
  3. if(array_key_exists("first", $lowercase)){
  4.     echo 'Есть';
  5. }else{
  6.     echo 'Нет';
  7. }

$arr - Ваш массив, который нужно обработать. В $lowercase будет лежать его дубль, но все ключи уже будут в нижнем регистре
 
 Top
g200
Отправлено: 16 Декабря, 2013 - 19:08:41
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




teddy пишет:

$arr - Ваш массив, который нужно обработать. В $lowercase будет лежать его дубль, но все ключи уже будут в нижнем регистре


Ща испробую отпишусь ) СПС
(Добавление)
teddy пишет:
Если от пользователей приходит все в нижнем регистре то можно привести ключи массива в соответствующий регистр.
PHP:
скопировать код в буфер обмена
  1. $arr = array("FiRsT" => 1, "SeCoNd" => 2);
  2. $lowercase = array_change_key_case($arr, CASE_LOWER);
  3. if(array_key_exists("first", $lowercase)){
  4.     echo 'Есть';
  5. }else{
  6.     echo 'Нет';
  7. }

$arr - Ваш массив, который нужно обработать. В $lowercase будет лежать его дубль, но все ключи уже будут в нижнем регистре


Спасибо ! ты очень помог )))
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB