function 'FILE'
Краткий обзор
Читает или записывает текстовый файл.
Описание
Читает текстовый файл или записывает в него, работает в символьном или строковом режиме.
Синтаксис
FILE(filename[,offset[,length[,options[,format]]]])
Аргументы
offset
Cмещение.
Может быть указано как любое число.
Если число отрицательно, <offset> указывает количество байтов назад от конца файла.
length
Если указано, длина считываемых данных будет ограничена до заданного размера. Если число отрицательно, обрезает длину (<length>) байтов от конца файла.
options
- 'l:' Линейный режим: предполагается, что смещение и длина измеряется в строках, вместо байтовых смещений.
- 'a:' Только в режиме записи, опция используется для добавления в конце файла, вместо перезаписи существующего файла.
- 'd:' Только в режиме записи и режиме строки, эта опция не добавляет автоматически строку новой линии в конец значения. Это полезно для удаления строк, вместо установки пустых.
format
Параметр <format> может использоваться для определения типа разделителя строки, в режиме строки.
- 'u:' Формат перевода строки Unix.
- 'd:' Формат перевода строки Dos.
- 'm:' Формат перевода строки Macintosh.
Пример
Режим чтения (байт):
; Читает все содержимое файла. Set(Foo = $ {FILE(/tmp/test.txt)})
; Читает с 11-го байта до конца файла (т.е. пропускает первые 10). Set(Foo = $ {FILE(/tmp/test.txt,10)})
; Читает от 11-го до 20-го байта в файле (т.е. пропускает первые 10, затем читает 10 байт). Set(Foo = $ {FILE(/tmp/test.txt,10,10)})
Режим чтения (строка):
; Читает 3-ю строку файла. Set(Foo = $ {FILE(/tmp/test.txt,3,1,l)})
; Читает 3-ю и 4-ю строчки файла. Set(Foo = $ {FILE(/tmp/test.txt,3,2,l)})
; Читает с третьей строки до конца файла. Set(Foo = $ {FILE(/tmp/test.txt,3,,l)})
; Читает последние три строки файла. Set(Foo = $ {FILE(/tmp/test.txt,-3,,l)})
; Читает 3-ю строку файла в формате DOS. Set(Foo = $ {FILE(/tmp/test.txt,3,1,l,d)})
Режим записи (байт):
; Обрезает файл и пишет "bar". Set(FILE(/tmp/test.txt)=bar)
; Добавить "bar". Set(FILE(/tmp/test.txt,,,a)=bar)
; Заменить первый байт на "bar" (заменяет 1 символ на 3). Set(FILE(/tmp/test.txt,0,1)=bar)
; Заменить 10 байтов, начиная с 21-го байта файла, на "bar". Set(FILE(/tmp/test.txt,20,10)=bar)
; Заменить все байты с 21-го числа на "bar". Set(FILE(/tmp/test.txt,20)=bar)
; Вставить «бар» после 4-го символа. Set(FILE(/tmp/test.txt,4,0)=bar)
Режим записи (строка):
; Заменить первую строку файла на "bar". Set(FILE(/tmp/foo.txt,0,1,l)=bar)
; Заменить последнюю строку файла на "bar". Set(FILE(/tmp/foo.txt,-1,,l)=bar)
;Добавить "bar" в файл с новой строки. Set(FILE(/tmp/foo.txt,,,al)=bar)
Если в конфиге «asterisk.conf», параметр «live_dangerously=no», то эта функция может быть выполнена только из диалплана, но не через API.
См. live_dangerously
Смотри также