![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
В общем есть конструкция
в строке содержится "array('var1'=>'значение' , array(0=>1,2,3,4 ... ) , ... )" ее я получаю в результате парсинга php документа. Сам вопрос если способ кроме eval сделать этот массив реальным. Нужна функция из строки содержавшею конструкцию массива в массив? -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
skyboy |
|
||||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
да. альтернатива eval - записать данные в файл между "<?php" и "?>", а затем заинклудить этот файл.
чего-чего? |
||||
|
|||||
teroni |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 15.5.2007 Где: Днепропетровск Репутация: 8 Всего: 22 |
||||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
я покачто сделал на eval.
хочется найти и еще способ, чтобы потом легко можно было поменять значения и записать обратно в файл. Это сообщение отредактировал(а) Sanchezzz - 16.12.2008, 14:03 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
igm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.2.2008 Репутация: нет Всего: -2 |
Может подойдут такие функции как serialize и unserialize. Первая упаковывает массив в определенный формат, а вторая естественно распаковывает.
К примеру, после того как распарсили php код сохраняем его в упакованном виде в файл, ну а когда надо распаковываем и получаем реальный массив. |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
igm первый пост читал?
Если я сделаю по твоему способу то я проделаю тройную работу. А для меня это не есть хорошо. И мне в файл не нужно уповывать, когда я из php скрипта выдираю строку массива. Я пока что остановился на первом варианте евал. Всем спасибо за ответы и советы. -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
Sanchezzz |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
возращюсь опять к этому вопросу... решил немного подшаманить велик.
есть регулярка preg_match("#\s*\\\$core-\>initComponent\s*\(\s*(\'|\")([a-zA-Z0-9\s_])+(\'|\")+([\s*|,])+([\s*])+array+([\s*]|\()+(.*?)\)\);#is",substr($text,$st-1,$st+$kn+2),$math)) которая возражает массив... мне нужно как то этот строку превратить в массив но без eval кто знает способ? array ( 'template'=> 'horizontal-lv2','id_menu'=> '1'); покачто дело крутится вот так
регулярка важрашяет $math[7] = 'template'=> 'horizontal-lv2','id_menu'=> '1' eval запись в файл а затем это подрубить отпадает создание виртуальной функции и передача ей параметра тоже отпадает... если кто хочет переписать по удобнее регклярку то искомая строка такова:
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |