Получить массив из файла в форму, а потом сохранить обратно

MAD-BOYT

Постоялец
Регистрация
22 Ноя 2007
Сообщения
78
Реакции
8
Привет всем.

Есть конфиг вида

Код:
$c['aa']['bb'] = 'bb';
$c['aa']['cc'] = 'cc';
$c['aa']['dd'] = 'dd';

$c['bb']['aa'] = 'aa';
$c['bb']['bb'] = 'bb';
$c['bb']['cc'] = 'cc';

по объему достаточно большой.

Есть ли возможность как-то редактировать такой конфиг через форму?
Точнее да же интересует есть ли возможность сохранять такой файл без потери его структуры?
Находил такой конфиг в движке в LS, там же и плагин админки, где можно редактировать его. Но что-то выдернуть не получилось и разабраться то же.
 
Самое элементарное чё пришло в голову:
PHP:
<?php
if($_POST){
$a=stripcslashes($_POST['cont']);
@file_put_contents ("test1.php", $a);
}
echo "<form method='POST'><textarea name='cont' cols=100 rows=10>".@file_get_contents ("test1.php")."</textarea><input type='submit' value='send'></form>";
?>
это без проверок и соблюдения требований безопасности...
 
Не не. Я не это имел в виду.

Вот получать в форму из этого файла не все содержимое файла, а поля в виде input\text, для редактирования значений, например из $c['aa']['bb'] = 'bb'; редактировать 'bb'
т.е. в итоге получить для

Код:
$c['aa']['bb'] = 'bb'
$c['bb']['aa'] = 'aa';

<form method="post">
<input type="text" name="aa_bb" value="bb" />
<input type="text" name="bb_aa" value="aa" />
....
<input type="submit" value="save" />
</form>
 
К чему такие мутки? Тем более если файл большой от несметного количества input type=text в глазах рябить будет! А так и комментарий видно и в целом структуру документа...
Ну а если разобрать нужно только один многомерный массив используй foreach для построения формы...
 
Не. Там не все поля настраивать будет нужно.
там в некоторых пути прописаны и т.д...
вывод в форму, например только части массива где есть $c['aa'] например.

Я просто не сталкивался с таким никогда, по этому да же примерно не знаю как делать. и примеров что-то найти никак не могу(
 
Если там не все настраивать нужно то примеров нигде не найдёшь! Это сугубо индивидуальный скрипт получится... Тебе прийдется создать шаблон формы, куда будут вводиться данные из файла, а затем нужно будет на основании данных формы сформировать новый файл конфига... Шибко муторно получится... Пока только это напишешь голова кругом пойдёт, а за отладку и проверку принятых от формы данных я вообще молчу.
 
да. я вот и думал что не просто будет.
А как лучше тогда работать с таким конфигом? на сервер постоянно лазить ну совсем не вариант.
может для простоты вообще в БД конфиг писать? Один запрос особо не сделает погоды, зато будет удобно.
Только вот как тогда в цикле сортировать по, скажем группам
если к примеру в БД будет записано так
id | group | name | value
1 | aa | site_title | Заголовок сайта
2 | aa | site_desc | Описание сайта
3 | bb | num_news | 10
4 | bb | num_articles | 10
и в цикле уже по group сортировать список и добавлять заголовок группы.
Такое сложно реализуется?
 
В принципе не очень сложно, только я бы порекомендовал добавить ещё пару полей, в которых сразу бы прописывал тип элемента формы(text, radio, checkbox) для данного элемента конфига, и например варианты выбора(для radio) и т д. Так можно будет минимизировать шаблоны для такого редактора.
 
Да. типы будут полезны.
Т.е. это нужно будет в цикле определять что за поле и соответственно выводить нужный вариант настройки?

В теории представляю. Но... сложновато получается для меня пока.
Нужно же будет еще и количество значений определять.
Например если чекбокс будет содержать три значения.

Вспомнил! Получается будет примерно как в osc скриптах. в бд настройка в виде текста функции, например select_option(array('true', 'false')
а в функцию уже массив с любым количеством значений.

Все равно как-то сложно получается
 
Есть две замечательные функции:
serialize() и unserialize()

позволяющие хранить данные в виде строки без потери типа данных. Может быть они тебе помогут в твоих не легких начинаниях :)

Как пользоваться функциями и с чем их едят разберешься я думаю сам.
 
Назад
Сверху