First time here? Check out the FAQ!

Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Получить массив значений из файла

0

Доброго времени суток!

FreePBX 13.0.195.18

Asterisk 13.17.0

Есть некий набор значений в файле, например:

[test1] 
a
=1
b
=2

[test2]
a
=3
b
=4

т.е. по сути это ассоциативный массив вида: array('test1' => [a=>1, b=2], 'test2' => [a=>3, b=4]).

И необходимо в диаплане получать значения переменных a и b по ключу (test1, test2). Каким образом это можно сделать? Файл мы составляем сами, можем сделать читабельным для астериска (любой формат).

спросил May 29 '19

rukit Gravatar rukit
85 9 5

Comments

1

Используйте AGI

Olpag (May 29 '19)edit

Из файла это доставать не реально?

rukit (May 29 '19)edit

Реально. Но с помощью AGI парсить куда проще

tesak89 (Aug 20 '19)edit

1 Ответ

1

Из файла это достать реально. Не не очень удобно.

Есть комнда ReadFile. Есть команда System. Есть функция CUT

Но очень заморочно при файлеименно в таком виде. Проще запустить какойто скрипт(тот же grep) который вытащит только нужное вам и оформить его в виде псевдо-AGI.

Тоесть чтоб вывод скрипта был

SET VARIABLE varname value

Парсить agi протокол - необязательно.

Если критично быстродействие - fastagi/CURL запрос к локальному серверу.

ссылка удалить спам редактировать

ответил May 29 '19

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

Благодарю за ответ! Сделали через CURL к локальному серверу, храним данные локально в этом же файле скрипта, в массиве. Работает хорошо.

rukit (May 29 '19)edit

Через жопу. Правильно все же хранить в базе данных. Они и преднозначены для данных. Если база - sqlite, то еще и не надо лишних процессов.

meral (May 29 '19)edit

Это статичные данные. Мы не будем их менять/добавлять. Думаете, даже в этом случае лучше хранить в базе?

rukit (May 30 '19)edit

да, в sqlite или asteriskdb.Ну вот у вас через год прийдет админ, зафаерволит ваш веб сервер или прибьет его на внешний адрес - возникнет вопрос, почему ваша фигня не работает, как вы думаете сколько вы на это времени потратите? А через 5 лет? А если не вы уже?

meral (May 30 '19)edit

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: May 29 '19

Просмотрен: 341 раз

Обновлен: May 29 '19

Похожие вопросы:

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.