Diff for /parser3/operators.ru.txt between versions 1.253 and 1.256

version 1.253, 2017/02/20 15:26:58 version 1.256, 2024/12/15 22:15:51
Line 113 Line 113
         по умолчанию, методы компилируются в $self [в случае оператора, $self=$MAIN:CLASS]          по умолчанию, методы компилируются в $self [в случае оператора, $self=$MAIN:CLASS]
   
     ^connect[protocol://строка соединения]]{код с ^sql[...]-ями}      ^connect[protocol://строка соединения]]{код с ^sql[...]-ями}
         mysql://user:pass@{host[:port]|[/unix/socket]}/database?          mysql://user:pass@{host[:port][, host[:port]]|[/unix/socket]}/database?
             ClientCharset=parser-charset << charset in which parser thinks client works              ClientCharset=parser-charset << charset in which parser thinks client works
             charset=UTF-8&              charset=UTF-8&
             timeout=3&              timeout=3&
             compress=0&              compress=0&
             named_pipe=1&              named_pipe=1&
             multi_statements=1& allow execute more then one query in one parser :sql{} request              multi_statements=1&  allow execute more then one query in one parser :sql{} request
               config_file=.my.cnf&
               config_group=parser3&  use group name from .my.cnf
             autocommit=1              autocommit=1
             autocommit если выставить в 0, будет делать commit/rollback              autocommit если выставить в 0, будет делать commit/rollback
   
Line 218  odbc c:\drives\y\parser3project\odbc\deb Line 220  odbc c:\drives\y\parser3project\odbc\deb
     всегда есть кодировка UTF-8, она является кодировкой по-умолчанию для request и response      всегда есть кодировка UTF-8, она является кодировкой по-умолчанию для request и response
     ВНИМАНИЕ: имя кодировки case insensitive      ВНИМАНИЕ: имя кодировки case insensitive
   
   
 синтаксис  синтаксис
     $имя[новое значение]      $имя[новое значение]
     $имя(математическое выражение нового значения)      $имя(математическое выражение нового значения)
Line 226  odbc c:\drives\y\parser3project\odbc\deb Line 229  odbc c:\drives\y\parser3project\odbc\deb
     ^имя параметры  вызов      ^имя параметры  вызов
     $имя.CLASS класс значения      $имя.CLASS класс значения
     $имя.CLASS_NAME имя класса      $имя.CLASS_NAME имя класса
     $имя[$.key[] () {}]  конструктор элемента переменной-хэша $имя.key      $имя[$.key[] () {}]  конструктор элемента переменной-хеша $имя.key
     ^method[$.key[] () {}] конструктор элемента параметра-хеша $parameter.key      ^method[$.key[] () {}] конструктор элемента параметра-хеша $parameter.key
     $CLASS.имя  обращение к переменной класса      $CLASS.имя  обращение к переменной класса
   
Line 241  odbc c:\drives\y\parser3project\odbc\deb Line 244  odbc c:\drives\y\parser3project\odbc\deb
         $переменная          $переменная
         строка$переменная          строка$переменная
         [код, вычисляющий строку]          [код, вычисляющий строку]
     например: $хэш[$.возраст(88)] $достать[$.поле[возраст]] ^хэш.[$достать.поле].format{%05d}      например: $хеш[$.возраст(88)] $достать[$.поле[возраст]] ^хеш.[$достать.поле].format{%05d}
   
 параметры := один или много параметров  параметры := один или много параметров
 параметр :=  параметр :=
Line 267  int,double Line 270  int,double
     ^int/double:sql{query}[[$.limit(2) $.offset(4) $.default{0} $.bind[см. table::sql]]]      ^int/double:sql{query}[[$.limit(2) $.offset(4) $.default{0} $.bind[см. table::sql]]]
         запрос, результат которого должен быть один столбец/одна строка          запрос, результат которого должен быть один столбец/одна строка
   
   
 string  string
     в выражении      в выражении
         def значение равно "не пуста?"          def значение равно "не пуста?"
Line 305  string Line 309  string
         опции поиска+=          опции поиска+=
         g заменить все вхождения, а не одно          g заменить все вхождения, а не одно
   
     ^строка.split[разделитель][[lrhv]][[название столбца для вертикального разбиения]]      ^строка.split[разделитель|regex][[lrhva]][[название столбца для вертикального разбиения]]
         l слева направо [default]          l слева направо [default]
         r справа налево          r справа налево
         h nameless таблица с ключами 0, 1, 2, ...          h nameless таблица с ключами 0, 1, 2, ...
         v таблица из 1 столбца 'piece' или как передадут [default]          v таблица из 1 столбца 'piece' или как передадут [default]
           a массив
   
     ^строка.{l|r}split[разделитель] таблица из столбца $piece      ^строка.{l|r}split[разделитель] таблица из столбца $piece
         оставлен для совместимости          оставлен для совместимости
Line 343  string Line 348  string
   
     ^строка.trim[chars] выкидывает chars из начала и конца      ^строка.trim[chars] выкидывает chars из начала и конца
   
     ^строка.base64[] encode      ^строка.base64[ $.pad(bool) $.wrap(bool) $.url-safe(bool) ] encode
     ^string:base64[encoded[;$.strict(true)]] decode      ^string:base64[encoded[; $.pad(bool) $.strict(bool) url-safe(bool) ]] decode
   
     ^строка.idna[]      ^строка.idna[]
         IDNA кодирование, поддержка кириллических доменов          IDNA кодирование, поддержка кириллических доменов
Line 358  string Line 363  string
   
     ^string:unescape[js|uri;escaped; $.charset[] ] декодирование переданного из js или uri      ^string:unescape[js|uri;escaped; $.charset[] ] декодирование переданного из js или uri
   
   
 table  table
     в выражении      в выражении
         логическое значение равно "не пуста?"          логическое значение равно "не пуста?"
Line 409  table Line 415  table
         если distinct содержит tables, то будет создан hash из таблиц, содержащих строки с ключом          если distinct содержит tables, то будет создан hash из таблиц, содержащих строки с ключом
         $.type[string/table] поменять значение элемента на строку (указать одну колонку) или таблицу          $.type[string/table] поменять значение элемента на строку (указать одну колонку) или таблицу
     ^таблица.columns[[название столбца]] + таблица из одного столбца 'column' или как передадут      ^таблица.columns[[название столбца]] + таблица из одного столбца 'column' или как передадут
       ^таблица.cells[], ^таблица.cells(лимит) - выдает массив ячеек текущей строки
       ^таблица.array[] - возвращает массив, элементами которого являются хеши, отображающие данные каждой строки
       ^таблица.array[колонка] - возвращает массив значений указанной колонки
       ^таблица.array{код} - возвращает массив результатов выполнения переданного кода для каждой строки таблицы
       ^таблица.rename[название столбца;новое навание столбца] - переименовывает столбец
       ^таблица.rename[ $.название столбца[новое навание столбца] ] - переименовывает столбцы
     $отобранное[^таблица.select(выражение)] = таблица из тех же столбцов и строк, у которых условие совпало      $отобранное[^таблица.select(выражение)] = таблица из тех же столбцов и строк, у которых условие совпало
         $adults[^man.select($man.age>=18)]          $adults[^man.select($man.age>=18)]
     ^таблица.color[цвет1;цвет2]      ^таблица.color[цвет1;цвет2]
Line 429  hash Line 441  hash
     ^хеш.sub[вычитаемое]      ^хеш.sub[вычитаемое]
     ^хеш.union[b] = объединение      ^хеш.union[b] = объединение
         одноимённые остаются          одноимённые остаются
     ^хеш.intersection[b] = пересечение      ^хеш.intersection[b][[$.order[self|arg]]] = пересечение
         значения хеш          новый хеш, order задает порядок элементов (как в исходном хеше или хеше-параметре)
     ^хеш.intersects[b] = bool      ^хеш.intersects[b] = bool
     ^hash::sql{запрос}[[$.distinct(1) $.limit(2) $.offset(4) $.type[hash|string|table]]]      ^hash::sql{запрос}[[$.distinct(1) $.limit(2) $.offset(4) $.type[hash|string|table]]]
         получается hash(ключи=значения первая колонка ответа) of hash(ключи=названия остальных колонкок ответа) или          получается hash(ключи=значения первая колонка ответа) of hash(ключи=названия остальных колонкок ответа) или
         string=значение каждого элемента - строка, при надо указать ровно два столбца или          string=значение каждого элемента - строка, при этом надо указать ровно два столбца или
         table=значение каждого элемента - таблица          table=значение каждого элемента - таблица
     ^хеш.keys[[название колонки с ключами]] + таблица из одного столбца key или как передадут      ^хеш.keys[[название колонки с ключами]] + таблица из одного столбца key или как передадут
     ^хеш.count[]      ^хеш.count[]
     ^хеш.foreach[key;value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}]      ^хеш.foreach[key;value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}]
     ^хеш.delete[ключ]  удалить ключ      ^хеш.delete[ключ]  удалить ключ
     ^хеш.contain[ключ] - существует ли в хеше ключ (bool)      ^хеш.contain[ключ] - существует ли в хеше ключ (bool)
     ^хэш.at[first|last][[key|value|hash]]      ^хеш.at[first|last][[key|value|hash]]
     ^хэш.at([-]N)[[key|value|hash]]      ^хеш.at([-]N)[[key|value|hash]]
         доступ к заданным элементам упорядоченного хеша          доступ к заданным элементам упорядоченного хеша
     ^хэш.sort[key;value]{{ключеделатель строка}|(ключеделатель число)}[[desc|asc]] default=asc      ^хеш.set[first|last;значение]
       ^хеш.set([-+]N)[значение]
          устанавливает значение заданного элемента упорядоченного хеша
       ^хеш.rename[старый_ключ;новый_ключ]
       ^хеш.rename[ $.старый_ключ[новый_ключ] ... ]
          переименовывает заданные ключи хеша
       ^хеш.sort[key;value]{{ключеделатель строка}|(ключеделатель число)}[[desc|asc]] default=asc
       $обратный_хеш[^хеш.reverse[]]
       $отобранное[^хеш.select[key;value](выражение)[ $.limit(N) $.reverse(bool) $.default(bool) ]] = хеш из ключей и значений, для которых условие истинно
   
 hashfile  hashfile
     ^hashfile::open[filename]      ^hashfile::open[filename]
Line 473  hashfile Line 493  hashfile
     $uid[$sessions.$sid]      $uid[$sessions.$sid]
   
   
   array
       в выражении
           логическое значение равно "не пуст?"
           числовое значение равно count[]
       $массив.индекс, $массив.(выражение)
           возврат значения по заданному индексу
       $массив.индекс[значение], $массив.(выражение)[значение]
           присваивание значения по индексу
       $массив[значение;значение;...]
           создание массива с заданными значениями
       ^array::create[]
       ^array::create[значение;значение;...]
           создание массива с заданными значениями или пустого массива
       ^array::copy[копируемый массив или хеш с цифровыми ключами]
           копирование массива или хеша с цифровыми ключами
       ^массив.add[добавляемый массив или хеш с цифровыми ключами]
           добавление элементов из другого массива или хеша с перезаписью значений у совпадающих индексов
       ^массив.join[добавляемый массив или произвольный хеш]
           добавление элементов другого массива или хеша в конец массива
       ^массив.append[значение;значение;...]
           добавление элементов в конец массива
       ^массив.insert(индекс)[значение;значение;...]
           вставка элементов в указанную позицию массива
       ^массив.left(n)
           возвращает новый массив из n первых элементов массива
       ^массив.right(n)
           возвращает новый массив из n последних элементов массива
       ^массив.mid(m;n)
           возвращает новый массив, содержащий n инициализированных элементов массива, начиная с позиции m
       ^массив.delete(index)
           удаление элемента массива с оставлением пустого места
       ^массив.remove(index)
           удаление элемента со сдвигом последующих элементов на его место
       ^массив.push[значение]
           добавление элемента в конец массив
       ^массив.pop[]
           возвращает последний элемент и удаляет его из массива
       ^массив.contain(индекс)
           существует ли в массиве элемент по переданому индексу (bool)
       ^array::sql{запрос}[[ $.sparse(false) $.distinct(false) $.limit(2) $.offset(4) $.type[hash|string|table]]]
           создание массива на основе выборки из базы данных
           $.sparse(false), по умолчанию - создать обычный массив. Значения строк выборки последовательно добавляются в массив
           $.sparse(true) - создать разреженный массив. Первая колонка данных должна содержать индексы,
           по которым будут размещены значения (аналогично ^hash::sql{})
           получается array of hash (ключи=названия остальных колонкок ответа) или
           string=значение каждого элемента - строка, при этом надо указать ровно два столбца или
           table=значение каждого элемента - таблица
       ^массив.keys[[название колонки с ключами]]
           таблица из одного столбца key или переданного названия с индексами инициализированных элементов массива
       ^массив.count[]
           количество инициализированных элементов массива
       ^массив.count[all]
           общее количество элементов массива, включая неинициализированные
       ^массив.foreach[index;value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}]
           перебирает все инициализированные элементы массива
       ^массив.for[index;value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}]
           перебирает все элементы массива
       ^массив.at[first|last][[key|value|hash]]
       ^массив.at([-]число)[[key|value|hash]]
           доступ к элементу массива по порядковому номеру
       ^массив.set[first|last][значение]
       ^массив.set([-]число)[значение]
           установка значения элемента массива по порядковому номеру
       ^массив.compact[]
           удаление неинициализированных элементов массива
       ^массив.compact[undef]
           удаление неинициализированных и пустых элементов массива
       ^массив.sort[key;value]{{ключеделатель строка}|(ключеделатель число)}[[desc|asc]] default=asc
           сортировка массива
       $обратный_массив[^массив.reverse[]]
           возвращает новый массив из элементов исходного в обратном порядке
       $отобранное[^массив.select[key;value](выражение)[ $.limit(N) $.reverse(bool) ]]
           отбор элементов массива, для которых условие истинно
   
 form  form
     [берётся первый элемент из одноимённых из GET, потом первый из POST]      [берётся первый элемент из одноимённых из GET, потом первый из POST]
     $form:поле = string/file       $form:поле = string/file 
     $form:nameless = поле со значением поля без имени "?value&...", "...&value&...", "...&value"      $form:nameless = поле со значением поля без имени "?value&...", "...&value&...", "...&value"
     $form:qtail = строка со значением текста после второго "?xxxxx", если там не было ',' [imap]      $form:qtail = строка со значением текста после второго "?xxxxx", если там не было ',' [imap]
     $form:fields = hash со всеми полями формы      $form:fields = hash со всеми полями формы
       $form:elements.поле = array со всеми значениями поля - как строковыми, так и файловыми
     $form:tables.поле = table с одним столбцом "field" со значениями "поля", для множественных значений      $form:tables.поле = table с одним столбцом "field" со значениями "поля", для множественных значений
     $form:files.поле = hash со значениями полей типа файл, ключи - 0, 1, ..., значение - файл      $form:files.поле = hash со значениями полей типа файл, ключи - 0, 1, ..., значение - файл
     $form:imap = хэш с ключами 'x' и 'y'      $form:imap = хеш с ключами 'x' и 'y'
         со значением ?1,2 приписки при использовании server-site image map          со значением ?1,2 приписки при использовании server-site image map
   
   
 env  env
     $env:переменная      $env:переменная
     $env:fields хэш с переменными окружения      $env:fields хеш с переменными окружения
     $env:PARSER_VERSION версия парсера      $env:PARSER_VERSION версия парсера
   
   
 cookie  cookie
     $cookie:имя считать старое или свежезаданное      $cookie:имя считать старое или свежезаданное
     $cookie:имя[значение] на 90 дней      $cookie:имя[значение] на 90 дней
Line 499  cookie Line 592  cookie
         если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT"          если дата, она будет преобразована к формату "Sun, 25-Aug-2002 12:03:45 GMT"
     $cookie:fields = hash со всеми cookies      $cookie:fields = hash со всеми cookies
   
   
 request  request
     $request:query      $request:query
     $request:uri      $request:uri
Line 514  request Line 606  request
     $request:body тело POST-запроса в виде текста      $request:body тело POST-запроса в виде текста
     $request:body-file тело POST-запроса в виде файла      $request:body-file тело POST-запроса в виде файла
     $request:body-charset кодировка POST-запроса      $request:body-charset кодировка POST-запроса
     $request:headers хэш с заголовками запроса (без префикса HTTP_)      $request:headers хеш с заголовками запроса (без префикса HTTP_)
   
   
 response  response
Line 543  regex Line 635  regex
     в выражении      в выражении
         логическое значение всегда равно true          логическое значение всегда равно true
         числовое значение равно количеству байт скомпилированного шаблона.          числовое значение равно количеству байт скомпилированного шаблона.
     ^regex::create[шаблон-строка][[опции поиска]]      ^regex::create[шаблон-строка|regex][[опции поиска]]
     ^шаблон.size[] количество байт скомпилированного шаблона      ^шаблон.size[] количество байт скомпилированного шаблона
         если значение очень большое - стоит почитать документацию по pcre и, возможно, переписать шаблон.          если значение очень большое - стоит почитать документацию по pcre и, возможно, переписать шаблон.
     ^шаблон.study_size[] размер study-структуры. если==0 - шаблон не может быть "изучен"      ^шаблон.study_size[] размер study-структуры. если==0 - шаблон не может быть "изучен"
Line 551  regex Line 643  regex
     $шаблон.options строка с исходным текстом опций      $шаблон.options строка с исходным текстом опций
   
   
 TODO: reflection  reflection
     ^reflection:create[класс;конструктор[;пара;[мет[;ры]]]]  вызывает указанный конструктор класса (не более 100 параметров)      ^reflection:create[класс;конструктор[;пара;[мет[;ры]]]]  вызывает указанный конструктор класса (не более 100 параметров)
     ^reflection:classes[]                 хеш со всеми классами. ключ -- имя класса, значение бывает methoded (класс с методами) или void      ^reflection:classes[]                 хеш со всеми классами. ключ -- имя класса, значение бывает methoded (класс с методами) или void
     ^reflection:class[объект]             класс переданного объекта      ^reflection:class[объект]             класс переданного объекта
Line 559  TODO: reflection Line 651  TODO: reflection
     ^reflection:base[объект]              родительский класс переданного объекта      ^reflection:base[объект]              родительский класс переданного объекта
     ^reflection:base_name[объект]         имя родительского класса переданного объекта      ^reflection:base_name[объект]         имя родительского класса переданного объекта
     ^reflection:class_by_name[имя класса] получение класса по имени      ^reflection:class_by_name[имя класса] получение класса по имени
       ^reflection:class_alias[имя класса;новое имя класса]  задает псевдоним для указанного класса
     ^reflection:def[class;имя класса]     проверка класса на существование      ^reflection:def[class;имя класса]     проверка класса на существование
     ^reflection:methods[класс]            хеш со списком методов указанного класса, значения -- строки 'native' или 'parser'      ^reflection:methods[класс]            хеш со списком методов указанного класса, значения -- строки 'native' или 'parser'
     ^reflection:method[класс или объект;имя метода] возвращает junction-method класса или объекта      ^reflection:method[класс или объект;имя метода] возвращает junction-method класса или объекта
Line 707  mail Line 800  mail
     под win32 используется SMTP протокол, сервер задаётся      под win32 используется SMTP протокол, сервер задаётся
         $MAIL.SMTP[smtp.domain.ru]          $MAIL.SMTP[smtp.domain.ru]
   
   
 image  image
     $картинка[^image::measure[DATA]]      $картинка[^image::measure[DATA[; $.exif(bool) $.xmp(bool) $.xmp-charset[] $.video(bool) ]]]
         смотрит на .ext case insensitive,           смотрит на .ext case insensitive,
         умеет мерить пока только .gif и .jpg .jpeg          умеет мерить .gif, .jpg, tiff, bmp, webp и mp4 (mov)
     $картинка.exif << hash после measure jpeg с exif информацией       $картинка.exif << hash после measure jpeg с exif информацией и $.exif(true)
         $image.exif.DateTime & co           $image.exif.DateTime & co 
             [полный список см. http://www.ba.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html]              [полный список см. http://www.ba.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html]
         числа типа int/double,          числа типа int/double,
Line 779  file Line 873  file
     ^file::stat[имя файла]      ^file::stat[имя файла]
     $файл_который_был_stated_или_loaded.size .adate .mdate .cdate      $файл_который_был_stated_или_loaded.size .adate .mdate .cdate
     ^file::cgi[[text|binary;]имя файла[;env hash +options[;1cmd[;2line[;3ar[;4g[;5s]]]]]]]      ^file::cgi[[text|binary;]имя файла[;env hash +options[;1cmd[;2line[;3ar[;4g[;5s]]]]]]]
           любой аргумент может быть строкой или массивом строк
         возвращённый заголовок рассыпается на $поля          возвращённый заголовок рассыпается на $поля
         $status          $status
         $stderr          $stderr
     ^file::exec[[text|binary;]имя файла[;env hash[;1cmd[;2line[;3ar[;4g[;5s;...under unix max 50 args]]]]]]]      ^file::exec[[text|binary;]имя файла[;env hash[;1cmd[;2line[;3ar[;4g[;5s;...under unix max 50 args]]]]]]]
           любой аргумент может быть строкой или массивом строк
         options:          options:
             $.stdin[текст|файл]  если пусто, отключается автоматическое пересовывание данных HTTP-POST              $.stdin[текст|файл]  если пусто, отключается автоматическое пересовывание данных HTTP-POST
     ^file:move[старое имя файла;новое имя файла]      ^file:move[старое имя файла;новое имя файла]
         можно переименовывать и двигать каталоги[win32: но не через границу дисков]          можно переименовывать и двигать каталоги[win32: но не через границу дисков]
         каталоги для dest создаются с правами 775          каталоги для dest создаются с правами 775
         каталог старого файла стирается, если после move он остаётся пуст          каталог старого файла стирается, если после move он остаётся пуст
     ^file:copy[имя файла;имя копии файла]      ^file:copy[имя файла;имя копии файла[; $.append(1) ]]
         можно копировать только файлы          можно копировать только файлы
     ^file:lock[имя файла]{код}      ^file:lock[имя файла]{код}
         файл при необходимости создаётся          файл при необходимости создаётся
Line 813  file Line 909  file
         первая колонка - данные          первая колонка - данные
         если есть вторая - это имя файла          если есть вторая - это имя файла
         если есть третья - это content-type          если есть третья - это content-type
     ^файл.base64[] encode      ^файл.base64[ $.pad(bool) $.wrap(bool) $.url-safe(bool) ] encode
     ^file:base64[имя файла]      ^file:base64[имя файла[; $.pad(bool) $.wrap(bool) $.url-safe(bool) ]]
         encode          encode
     ^file::base64[encoded string]      ^file::base64[encoded string[; $.pad(bool) $.strict(bool) url-safe(bool) ]]
     ^file::base64[mode;имя файла;encoded string[;$.content-type[...]]]      ^file::base64[mode;имя файла;encoded string[; $.content-type[...] $.pad(bool) $.strict(bool) url-safe(bool) ]]
         decode          decode
     ^file:crc32[имя файла]      ^file:crc32[имя файла]
         вычисляет crc32 файла с указанным именем          вычисляет crc32 файла с указанным именем
Line 834  math Line 930  math
     ^math:round floor ceiling      ^math:round floor ceiling
     ^math:trunc frac      ^math:trunc frac
     ^math:abs sign      ^math:abs sign
     ^math:exp log      ^math:exp log log10
     ^math:sin asin cos acos tan atan      ^math:sin asin cos acos tan atan atan2
     ^math:degrees radians      ^math:degrees radians
     ^math:pow sqrt      ^math:pow sqrt
     ^math:random(ширина диапазона)      ^math:random(ширина диапазона)
     ^math:convert[number](base-from;base-to)      ^math:convert[number](base-from;base-to)
         преобразует строку с числом из одной системы исчисления в другую          преобразует строку с числом из одной системы исчисления в другую
     ^math:uuid[]      ^math:uuid[ $.lower(bool) $.solid(bool) ]
         22C0983C-E26E-4169-BD07-77ECE9405BA5          22C0983C-E26E-4169-BD07-77ECE9405BA5
         win32: пользуется cryptapi          win32: пользуется cryptapi
         unix: пользуется /dev/urandom,          unix: пользуется /dev/urandom,
             если нет, /dev/random,              если нет, /dev/random,
             если нет, rand              если нет, rand
             [на solaris /dev/random можно добавить]              [на solaris /dev/random можно добавить]
     ^math:uid64[]      ^math:uuid7[ $.lower(bool) $.solid(bool) ]
           0193CBF0-7898-7000-A391-AC513CC15658
           https://www.rfc-editor.org/rfc/rfc9562.html#name-uuid-version-7
       ^math:uid64[ $.lower(bool) ]
         BA39BAB6340BE370          BA39BAB6340BE370
     ^math:md5[string]      ^math:md5[string]
         выдает digest строки, длиной 16 байт в виде строки,           выдает digest строки, длиной 16 байт в виде строки, 
Line 861  math Line 960  math
     ^math:crc32[string]      ^math:crc32[string]
         вычисляет crc32 строки          вычисляет crc32 строки
     ^math:sha1[string]      ^math:sha1[string]
     ^math:digest[[md5|sha1|sha256|sha512];строка или файл][[ $.format[hex|base64] $.hmac[ключ] ]]      ^math:digest[[md5|sha1|sha256|sha512];строка или файл][[ $.format[hex|base64|file] $.hmac[ключ строка|ключ файл] ]]
         объединяет в себе возможность работы с разными алгоритмами криптографического хеширования.          объединяет в себе возможность работы с разными алгоритмами криптографического хеширования.
         $.hmac[ключ] для проверки целостности переданных данных          $.hmac[ключ] для проверки целостности переданных данных
   
Line 871  inet Line 970  inet
     ^inet:aton[IP]      ^inet:aton[IP]
     ^inet:name2ip[name][[ $.ipv[4|6|any] $.table(true) ]] прямое преобразование имени в IP адрес      ^inet:name2ip[name][[ $.ipv[4|6|any] $.table(true) ]] прямое преобразование имени в IP адрес
     ^inet:ip2name[ip][ $.ipv[4|6|any] ]] обратное преобразование из IP адреса в имя      ^inet:ip2name[ip][ $.ipv[4|6|any] ]] обратное преобразование из IP адреса в имя
       ^inet:hostname[]: возвращает имя хоста
   
   
 json  json
Line 891  json Line 991  json
         $.array[method-junction]     пользовательский метод, которому будут передаваться массивы          $.array[method-junction]     пользовательский метод, которому будут передаваться массивы
         $.taint[язык преобразования] задаёт язык преобразования для всех строк результата          $.taint[язык преобразования] задаёт язык преобразования для всех строк результата
     ]]      ]]
         парсит json-строку в хэш          парсит json-строку в хеш
   
     ^json:string[system or user object[;      ^json:string[system or user object[;
         $.skip-unknown(false)    отключить exception и выдавать 'null' при сериализации объектов с типами          $.skip-unknown(false)    отключить exception и выдавать 'null' при сериализации объектов с типами
Line 925  date Line 1025  date
     ^date::now[]      ^date::now[]
     ^date::now(смещение в днях) выдаёт сейчас+смещение      ^date::now(смещение в днях) выдаёт сейчас+смещение
     ^date::today[] дата на 00:00:00 текущего дня      ^date::today[] дата на 00:00:00 текущего дня
       ^date::today(целочисленное смещение в днях) дата на 00:00:00 текущего дня+смещение
     ^date::create(дней с epoch)      ^date::create(дней с epoch)
     ^date::create(year;month[;day[;hour[;minute[;second[;TZ]]]]])      ^date::create(year;month[;day[;hour[;minute[;second[;TZ]]]]])
     ^date::create[дата в формате %Y-%m-%d %H:%M:%S]      ^date::create[дата в формате %Y-%m-%d %H:%M:%S]
Line 1109  xnode Line 1210  xnode
     ^node.selectNumber[xpath/query/expression] = double if any or die      ^node.selectNumber[xpath/query/expression] = double if any or die
     ^node.selectString[xpath/query/expression] = string if any or die      ^node.selectString[xpath/query/expression] = string if any or die
   
   
 memory  memory
     ^memory:compact[] собрать мусор, освободив место под новые данные      ^memory:compact[] собрать мусор, освободив место под новые данные
     (предупреждение: память процесса никогда не освобождается)      (предупреждение: память процесса никогда не освобождается)

Removed from v.1.253  
changed lines
  Added in v.1.256


E-mail: