Parser 3.x test page

Если вы видите эту страницу, значит вы установили парсер и пытаетесь его протестировать :)

Чтобы увидеть полные пути к конфигурационным файлам и DOCUMENT_ROOT - закоментируйте метод postprocess[]

Если что-либо выделено красным цветом, значит или что-то настроено неверно или автоматическое определение невозможно (это относится к поиску файлов библиотек и кодовых таблиц при заданных относительных путях).


Глобальные переменные, заданые в конфигурационном auto.p

$CHARSETS:

windows-1251 $charsetsdir/windows-1251.cfg относительный путь. проверка невозможна

$SQL:

mysql$sqldriversdir/libparser3mysql.so (относительный путь. проверка невозможна)/usr/lib/libmysqlclient.so (250168 байт)

DOCUMENT_ROOT: закоментируйте postprocess чтобы увидеть путь
$response:charset: WINDOWS-1251
$request:charset: WINDOWS-1251
$request:uri: /parser3/
$request:query:
$SQL.connect-string: определена
$CLASS_PATH:
/classes/standardкаталога не существует
/classes/standard/sqlкаталога не существует
/classes/standard/authкаталога не существует
/classesкаталога не существует

Демонстрация работы парсера

Демонстрация работы с cookie

Чтение $cookie:test: не определена
Запись в cookie значения ABC $cookie:test[ABC] (нажмите Reload для проверки)

Демонстрация работы математических операторов

^eval(2+2): 4
^math:random(1000): 16

Работа со строками

Задание $str[АбвГде]
Длина строки ^str.length[]: 6
Строка в верхнем регистре ^str.upper[]: АБВГДЕ
Строка в нижнем регистре ^str.lower[]: абвгде
Первые 2 символа строки ^str.left(2): Аб
Последние 3 символа строки ^str.right(3): Где
2-4 символы строки ^str.mid(1;3): бвГ
Позиция символа 'Г' в строке ^str.pos[Г]: 3
Позиция символа 'X' в строке ^str.pos[X]: -1
Замена комбинации символов 'вГ' на XX с помощью ^str.match[вГ][]{XX}: АбXXде
Замена комбинации символов 'в' на 'Y', 'Г' на 'Z' с помощью ^str.replace[$repl]: АбYZде

Чтение значений из формы

$form:a: не определено
Safe преобразование $form:a в целое число: ^form:a.int(1): 1
$form:b не определено
$form:qtail: не определено
идем сюда чтобы проверить чтение значений формы

Задание и вывод значений у объекта hash

$hash1[
  $.a[1]
  $.b[2]
  $.c[3]
]
^hash1.foreach[key;value]{
  $key=$value
}[<br />]
a=1
b=2
c=3

Задание и вывод значений у объекта table

$tbl1[^table::create{name	col1	col2
Вася	3	5
Дима	4	14}]
Количество строк таблицы $tbl1: 2
Количество столбцов таблицы $tbl1: 3
Вывод названий столбцов таблицы:
строка column
1 name
2 col1
3 col2

Вывод значений таблицы $tbl1:
строка namecol1col2
1 Вася35
2 Дима414

$tbl2[^table::create{name	col1	col2
Вова	3	44}]
Количество строк таблицы $tbl2: 1

join таблицы $tbl1 к таблице $tbl2 [^tbl2.join[$tbl1]]
Количество строк таблицы $tbl2 ^tbl2.count[]: 3
Вывод полученой таблицы:
строка namecol1col2
1 Вова344
2 Вася35
3 Дима414

select и вывод записей таблицы у который $col1 равен 3: $out_table[^tbl2.select($tbl2.col1 == 3)]
строка namecol1col2
1 Вова344
2 Вася35

Получение из таблицы - хеша таблиц, где в качестве ключа выступает значение $col1: $tables_hash[^tbl2.hash[col1][$.distinct[tables]]]

Вывод полученного хеша таблиц:
Ключ Значение
3
строка namecol1col2
1 Вова344
2 Вася35
4
строка namecol1col2
1 Дима414

Работа с датами

$now[^date::now[]]
Получение сегодняшней даны $now.day/$now.month/$now.year: 27/9/2017
Вывод сегодняшней даты в sql формате ^now.sql-string[]: 2017-09-27 00:41:41
Сдвиг даты на 5 дней назад ^now.roll[day](-5): 22/9/2017
Сдвиг полученой даты на 30 дней вперед ^now.roll[day](30): 22/10/2017

Работа с файлами

Запись таблицы $tbl1 в файл DOCUMENT_ROOT/_test.cfg [^tbl1.save[/_test.cfg]]: нет доступа для записи файла

Работа с переменными окружения

QUERY_STRING: $env:QUERY_STRING=''
HTTP_REFERER: $env:HTTP_REFERER=''
HTTP_USER_AGENT: $env:HTTP_USER_AGENT='CCBot/2.0 (http://commoncrawl.org/faq/)'
REMOTE_HOST: $env:REMOTE_HOST=''
REMOTE_ADDR: $env:REMOTE_ADDR='54.81.8.73'

Работа с SQL

^int:sql{SELECT 2+2}: 4

Работа с XML

Создание объекта типа xdoc:

$document[^xdoc::create{<?xml version="1.0" encoding="WINDOWS-1251" ?>
<document>
	<t attr="привет" n="123"/>
	<t attr="пока" n="234" n2="xxx"/>
	<text>текст</text>
</document>}]
Объект xdoc создан.
Достаем все элементы <t /> $elements[^document.select[//t]] :
Количество найденых элементов: 2
Вывод найденых элементов с помощью foreach (порядок произвольный):
имя: 't', тип: '1', кол-во аттрибутов: '2', аттрибуты: n='123', attr='привет'
имя: 't', тип: '1', кол-во аттрибутов: '3', аттрибуты: n2='xxx', n='234', attr='пока'