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

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

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). Каким образом это можно сделать? Файл мы составляем сами, можем сделать читабельным для астериска (любой формат).

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

спросил 2019-05-29 11:09:08 +0400

rukit Gravatar rukit
85 9 5

Comments

1

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

Olpag ( 2019-05-29 11:34:41 +0400 )редактировать

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

rukit ( 2019-05-29 11:38:33 +0400 )редактировать

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

tesak89 ( 2019-08-20 13:40:19 +0400 )редактировать

1 Ответ

1

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

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

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

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

SET VARIABLE varname value

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

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

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

ответил 2019-05-29 12:39:31 +0400

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

Comments

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

rukit ( 2019-05-29 13:04:48 +0400 )редактировать

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

meral ( 2019-05-30 00:25:44 +0400 )редактировать

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

rukit ( 2019-05-30 08:48:01 +0400 )редактировать

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

meral ( 2019-05-30 17:58:49 +0400 )редактировать

Ваш ответ

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 ленту новостей

Статистика

Задан: 2019-05-29 11:09:08 +0400

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

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

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

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