Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Узнать имя переменной
 
 автор: Fix   (09.12.2008 в 13:21)   письмо автору
 
 

В процессе "парсинга" сайта создается файл с именем переменной для папок. пример:
$dir_book = "books";
$dir_bss = "heartdisease";
$dir_cardio = "cardiology";
$dir_gastro = "gastro";
$dir_gynecology = "gynaecology";

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

Вопрос: каким образом можно "склеить" строку, чтобы потом из неё получилась переменная? Вот код:

...
// функция обхода всех папок, рекурсивно
$exp_dir = explode("/",$dir); // разрезаем строку с именем папок на части, и в $exp_dir[1] получаем имена папок:
// "bss", "cardio", "gastro", "gynecology "


Как потом создать переменную, чтобы она называлась что-то типа этого:
$."dir_".$exp_dir[1]

:)

  Ответить  
 
 автор: Pon4ik   (09.12.2008 в 13:38)   письмо автору
 
   для: Fix   (09.12.2008 в 13:21)
 

зачем так, думаю проше дудет ей присвоет новое имя,
а
$."dir_".$exp_dir[1]

будет выводить ошибку

можно вот так

$dir_exp_dir = "dir_".$exp_dir[1];

  Ответить  
 
 автор: FiX   (09.12.2008 в 14:23)   письмо автору
 
   для: Pon4ik   (09.12.2008 в 13:38)
 

Спасибо за ответ,
Это да, это получается... Данный код выводит просто имя:
dir_book
dir_bss


А мне нужно, чтобы именно
dir_book
dir_bss

были переменными и содержали значения

dir_book = "books";
dir_bss = "heartdisease";

  Ответить  
 
 автор: Гость   (09.12.2008 в 14:48)   письмо автору
 
   для: FiX   (09.12.2008 в 14:23)
 

eval();

  Ответить  
 
 автор: FiX   (09.12.2008 в 15:07)   письмо автору
 
   для: Гость   (09.12.2008 в 14:48)
 

:) а как использовать этот eval? Уже пробовал, не получается...

 $dir_exp_dir = eval("\$dr = \"dir_".$exp_dir[1]."\";");

  Ответить  
 
 автор: devzorg   (09.12.2008 в 21:53)   письмо автору
 
   для: Fix   (09.12.2008 в 13:21)
 

где вы тут видели рекурсию ?)))))))

...

$data = explode("/",$dir);имена папок:
// "bss", "cardio", "gastro", "gynecology "
eval("\$".$data[0]."_".$data[1]." = \$data[1];");
eval("\$".$data[0]."_".$data[2]." = \$data[2];");
eval("\$".$data[0]."_".$data[3]." = \$data[3];");

print $bss_cardio;

  Ответить  
 
 автор: BinLaden   (09.12.2008 в 22:03)   письмо автору
 
   для: Fix   (09.12.2008 в 13:21)
 

Во-первых,
${"dir_".$exp_dir[1]} = "...";

(могу ошибиться, ибо никогда этой ху#@ей ерундой не пользовался)

Во-вторых, пользуйтесь include, require... 0_0

  Ответить  
 
 автор: FiX   (10.12.2008 в 01:11)   письмо автору
 
   для: BinLaden   (09.12.2008 в 22:03)
 

Спасибо большое :) Понимаю, что это бред, тем не менее задача стояла...
Решил с помощью массивов. Работает :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования