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]   

> Без описания
LShark
Отправлено: 16 Мая, 2014 - 19:14:31
Post Id



Частый гость


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


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




В файле находятся имена переменных и их значения, например так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $name
  2. Вася пупкин
  3. $FOI
  4. Вася Васильевич Пупкин
  5. $Exist
  6. Да
  7.  

и так далее.
Хотелось бы, чтобы при загрузке этого файла в программе создавались эти переменные:
$name, $FOI, $Exist

И им присваивались соответствующие значения.

Причем в другом файле эти переменные могут быть в другом порядке, а часть отсутствовать или могут быть добавлены новые:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $FOI
  2. Кеша Койевич Кин
  3. $name
  4. Кеша Кин
  5. $Exist
  6. Нет
  7. $der
  8. Nicht


Вариант размещения данных в файле не существеннен

Типа:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $Exist Да
  2. $name Кеша


Есть ли возможность реализовать такое?

Естественно, программа потом совершит над нужными операции, а лишние просто проигнорирует, потому заранее знать, что окажется в файле и в каком порядке, невозможно.

(Отредактировано автором: 16 Мая, 2014 - 19:16:20)



-----
Истина прежде всего в том, что...
 
 Top
Мелкий Супермодератор
Отправлено: 16 Мая, 2014 - 19:59:23
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




LShark пишет:
Вариант размещения данных в файле не существеннен

Цитата:
Exist=Да
name=Кеша

Классический ini.


-----
PostgreSQL DBA
 
 Top
Panoptik
Отправлено: 16 Мая, 2014 - 20:06:12
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




вообще это плохой подход. лучше уже хранить просто в ассоциативном массиве определенные ключи, но коли уж вам так надо то попробуйте так
PHP:
скопировать код в буфер обмена
  1.  
  2. $lines = file('file.txt');
  3. $len = count($lines);
  4. for($i = 0; $i <= $len - 1; $i += 2) {
  5.   $l = $lines[$i];
  6.   ${substr($l, 1)} = $lines[$i+1];
  7. }
  8.  


или так

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. header('Content-Type: text/html; charset=utf-8');
  4. $arr1 = array(
  5.     '$name',
  6.     'Вася пупкин',
  7.     '$FOI',
  8.     'Вася Васильевич Пупкин',
  9.     '$Exist',
  10.     'Да',
  11. );
  12. $arr2 = array(
  13.     '$FOI',
  14.     'Кеша Койевич Кин',
  15.     '$name',
  16.     'Кеша Кин',
  17.     '$Exist',
  18.     'Нет',
  19.     '$der',
  20.     'Nicht',
  21. );
  22.  
  23. $globals_before = array_keys($GLOBALS);
  24. $globals_before[] = 'globals_before';
  25.  
  26. $result = splitArray($arr1);
  27. extract($result);
  28.  
  29. $result = splitArray($arr2);
  30. extract($result);
  31. var_dump($result, $name, $FOI, $Exist);
  32.  
  33. $globals_after = array_keys($GLOBALS);
  34. $diff = array_diff($globals_after, $globals_before);
  35.  
  36. var_dump($diff);
  37.  
  38. function splitArray($arr) {
  39.     $result = array();
  40.     foreach($arr as $k => $v) {
  41.         if($k%2) continue;
  42.         $result[substr($v, 1)] = $arr[$k+1];
  43.     }
  44.     return $result;
  45. }
  46.  


-----
Just do it
 
 Top
LShark
Отправлено: 16 Мая, 2014 - 20:45:46
Post Id



Частый гость


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


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




В целом да, можно использовать extract
Однако он бесполезен, если встретятся такие строки:
"col[0]" => "нолик"
"col[1]" => "одын-одын"
"col[2]" => "туа"
"col[3]" => "тры"
"col[4]" => "чичире"

Чтобы получился массив col[]


-----
Истина прежде всего в том, что...
 
 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