Parser 3.x test page

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

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

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


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

$CHARSETS:

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

$SQL:

protocol parser driver sql client library
mysql $sqldriversdir/libparser3mysql.so (относительный путь. проверка невозможна) /usr/local/lib/mysql/libmysqlclient.so (412884 байт)
pgsql $sqldriversdir/libparser3pgsql.so (относительный путь. проверка невозможна) libpq.so (относительный путь. проверка невозможна)
oracle $sqldriversdir/libparser3oracle.so (относительный путь. проверка невозможна) /u01/app/oracle/product/8.1.5/lib/libclntsh.so?ORACLE_HOME=/u01/app/oracle/product/8.1.5&ORA_NLS33=/u01/app/oracle/product/8.1.5/ocommon/nls/admin/data (не найден)

DOCUMENT_ROOT: «кривой» или скрипт находится не в корне веб пространства (закоментируйте postprocess чтобы увидеть)
Путь к скрипту: закоментируйте postprocess чтобы увидеть
$response:charset: WINDOWS-1251
$request:charset: WINDOWS-1251
$request:uri: /hosting/_test.html
$request:query:
$SQL.connect-string: не определена
$MAIL.SMTP: не определена
$CLASS_PATH: не определен

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

Демонстрация работы с cookie (класс $cookie)

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

Демонстрация работы математических операторов (класс $math)

^eval(2+2): 4
^math:random(1000): 260
^math:uuid[]: 6F5D4827-9676-446C-BBD3-ADA5C993C908
^math:uid64[]: 0F10952C884C11C8
^math:md5[строка]: 4a418b1973f47583cb45652a6f48df45
^math:crypt[строка;$apr1$]: $apr1$/MOJXonC$x9RMawJ8Rwy3slWPKgmyx.

Работа со строками (класс $string)

Задание $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де
^str.trim[both;е]: АбвГд

Чтение значений из формы (класс $form)

$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

Работа с датами (класс $date)

$now[^date::now[]]
Получение сегодняшнего времени/даты $now.day/$now.month/$now.year: 31/7/2010 15:39:55
Вывод сегодняшней даты в sql формате ^now.sql-string[]: 2010-07-31 15:39:55
Вывод сегодняшней даты в виде UNIX timestamp: 1280576395
Сдвиг даты на 5 дней назад ^now.roll[day](-5): 26/7/2010
Сдвиг полученой даты на 30 дней вперед ^now.roll[day](30): 25/8/2010

Работа с файлами (класс $file)

Запись таблицы $tbl1 в файл /_test.cfg [^tbl1.save[/_test.cfg]]: файл успешно создан
^file:dirname[/_test.cfg]: /
^file:basename[/_test.cfg]: _test.cfg
^file:justname[/_test.cfg]: _test
^file:justext[/_test.cfg]: cfg

Получение параметров сохраненного файла $fstat[^file::stat[/_test.cfg]]:
Размер файла, байт [$fstat.size]: 34
cdate: 31/7/2010
adate: 31/7/2010
mdate: 31/7/2010

Загрузка данных в таблицу $tbl3 из файла /_test.cfg и вывод [$tbl3[^table::load[/_test.cfg]]]:
строка namecol1col2
1 Вася35
2 Дима414

Работа с классом $hashfile

Создаем объект: $hf [$hf[^hashfile::open[hf]]]: объект успешно создан

Количество записей: 7
Добавление новой записи (5C0DB8C6-1824-4558-A15C-49795E0C0602) на 3 дня:
$hf.[5C0DB8C6-1824-4558-A15C-49795E0C0602][
   $.value[742811020]
   $.expires(3)
]
Вывод содержимого (максимум 5 записей):
F4E24250-E8CF-448A-8B3D-798EE5262117=904977738
69EAE700-52A0-4381-95A4-F9195F543281=168201096
F2B1A486-A875-456D-9A7C-B522F20D2209=67748560
6B369825-94F3-418F-95BB-5268B792742D=168490582
FC49C9EF-A82C-4CE3-AA3B-06E3DC51682B=738378131

Работа с переменными окружения (класс $env)

Переменная Значение Комментарий
SERVER_NAME pwstudio.org DNS имя сервера
QUERY_STRING
Для получения параметров используйте класс $form
HTTP_REFERER

HTTP_USER_AGENT CCBot/1.0 (+http://www.commoncrawl.org/bot.html) Строка USER_AGENT броузера посетителя
HTTP_X_FORWARDED_FOR
Обычно заполнена если пришли через прокси
REMOTE_HOST

REMOTE_ADDR 38.107.191.100 IP адрес посетителя

Работа с SQL

Не определена переменная $SQL.connect-string, проверка корректности работы с базой данных невозможна.

Работа с 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 (порядок произвольный):
nodeName: 't', nodeType: '1', кол-во аттрибутов: '2', аттрибуты: n='123', attr='привет'
nodeName: 't', nodeType: '1', кол-во аттрибутов: '3', аттрибуты: n2='xxx', n='234', attr='пока'

Работа с классами Status и Memory

Поле Описание Значения
на начало работы на текущий момент после ^memory:compact[]
$status:rusage.utime (сек) чистое время, затраченное текущим процессом 0.013564 0.016655 0.018765
$status:rusage.stime (сек) время, сколько система читала ваши файлы 0.013564 0.016655 0.018765
$status:rusage.maxrss (блоков) память, занимаемая процессом 29800 29800 29800
$status:memory.used (КБ) занято 920 1224 996
$status:memory.free (КБ) свободно (скорее всего фрагментирована) 36 52 280
$status:memory.ever_allocated_since_compact (КБ) выделено с момента последней сборки мусора 1069.81 1405.09 0.710938
$status:memory.ever_allocated_since_start (КБ) выделено за все время обработки запроса 1069.81 1405.09 1406.86