|
|
| 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[] собрать мусор, освободив место под новые данные |
| (предупреждение: память процесса никогда не освобождается) | (предупреждение: память процесса никогда не освобождается) |