Пользователи нашего хостинга могут включить парсер последней версии с поддержкой XML из своей панели управления в Разделе - Инструменты/Web-скрипты.
Характеристики серверов виртуального хостинга:
Parser 3.3.0
Apache 2.2.9
OS Fedora Core 9.0
PHP 5.2.6
Perl 5.10.0
MySQL 5.0.51a
PostgreSQL 8.3.4
Если вы видите эту страницу, значит вы установили парсер и пытаетесь его протестировать :)
Чтобы увидеть полные пути к конфигурационным файлам и DOCUMENT_ROOT - закоментируйте метод postprocess[]
Если что-либо выделено красным цветом, значит или что-то настроено неверно или автоматическое определение невозможно (это относится к поиску файлов библиотек и кодовых таблиц при заданных относительных путях).
windows-1257 | $charsetsdir/windows-1257.cfg (4532 байт) |
windows-1250 | $charsetsdir/windows-1250.cfg (4488 байт) |
windows-1251 | $charsetsdir/windows-1251.cfg (5159 байт) |
koi8-r | $charsetsdir/koi8-r.cfg (4519 байт) |
protocol | parser driver | sql client library |
---|---|---|
mysql | $sqldriversdir/libparser3mysql.so (99778 байт) | /usr/lib/mysql/libmysqlclient.so (не найден) |
pgsql | $sqldriversdir/libparser3pgsql.so (97267 байт) | /usr/lib/libpq.so (не найден) |
DOCUMENT_ROOT: совпадает с директорией тестового скрипта (закоментируйте postprocess чтобы увидеть)
Путь к скрипту: закоментируйте postprocess чтобы увидеть
$response:charset: WINDOWS-1251
$request:charset: WINDOWS-1251
$request:uri: /_test.html
$request:query:
$SQL.connect-string: определена
$MAIL.SMTP: не определена
$CLASS_PATH:
не определен
Чтение $cookie:test: не определена
Запись в cookie значения ABC $cookie:test[ABC] (нажмите Reload для проверки)
^eval(9+6): 15
^math:random(1000): 607
^math:log(1000): 6.90776
^math:log10(1000): 3
^math:uuid[]: 4B238202-3927-44E3-B338-4D636D2CE990
^math:uid64[]: 996B9C2C2F3105C8
^math:md5[СтРоКа]: c8535bf9739335c67bb0da6eb9fe9cac
^math:crypt[СтРоКа;$apr1$]: $apr1$Dt08f0JP$eh51O6ZRXif5w89oG0s5R/
^math:crc32[СтРоКа]: 1315173531
Задание $str[АбвГде]
Длина строки ^str.length[]: 6
Строка в верхнем регистре ^str.upper[]: АБВГДЕ
Строка в нижнем регистре ^str.lower[]: абвгде
Первые 2 символа строки ^str.left(2): Аб
Последние 3 символа строки ^str.right(3): Где
2-4 символы строки ^str.mid(1;3): бвГ
Поиск символа 'б' в строке ^str.pos[б]: 1
Поиск символа 'б' в строке начиная со 2 позиции ^str.pos[б](2): -1
Поиск символа 'X' в строке ^str.pos[X]: -1
Замена комбинации символов 'вГ' на XX с помощью ^str.match[вГ][]{XX}: АбXXде
Замена комбинации символов 'в' на 'Y', 'Г' на 'Z' с помощью ^str.replace[$repl]: АбYZде
^str.trim[both;е]: АбвГд
^str.trim[start;е]: АбвГде
^str.trim[end;е]: АбвГд
^str.trim[left;е]: АбвГде
^str.trim[right;е]: АбвГд
^str.base64[]: wOHiw+Tl
^str.js-escape[]: %u0410%u0431%u0432%u0413%u0434%u0435
^str:js-unescape[%u0410%u0431%u0432%u0413%u0434%u0435]: АбвГде
$form:a: не определено
Safe преобразование $form:a в целое число: ^form:a.int(1): 1
$form:b не определено
$form:qtail: не определено
идем сюда чтобы проверить чтение значений формы
$hash1[ $.a[1] $.b[2] $.c[3] ] ^hash1.foreach[key;value]{ $key=$value }[<br />]a=1
$tbl1[^table::create{name col1 col2 Вася 3 5 Дима 4 14}]Количество строк таблицы $tbl1: 2
строка | column |
---|---|
1 | name |
2 | col1 |
3 | col2 |
Вывод значений таблицы $tbl1:
строка | name | col1 | col2 |
---|---|---|---|
1 | Вася | 3 | 5 |
2 | Дима | 4 | 14 |
$tbl2[^table::create{name col1 col2 Вова 3 44}]Количество строк таблицы $tbl2: 1
join таблицы $tbl1 к таблице $tbl2 [^tbl2.join[$tbl1]]
Количество строк таблицы $tbl2 ^tbl2.count[]: 3
Вывод полученой таблицы:
строка | name | col1 | col2 |
---|---|---|---|
1 | Вова | 3 | 44 |
2 | Вася | 3 | 5 |
3 | Дима | 4 | 14 |
select и вывод строк таблицы у которых значения в столбце col1 равны 3: ^tbl2.select($tbl2.col1 == 3)
строка | name | col1 | col2 |
---|---|---|---|
1 | Вова | 3 | 44 |
2 | Вася | 3 | 5 |
Получение из таблицы - хеша таблиц, где в качестве ключа выступает значение col1: $hData[^tbl2.hash[col1][$.distinct[tables]]]
Вывод полученного хеша таблиц:
Ключ | Значение | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3 |
|
||||||||||||
4 |
|
Получение из таблицы - хеша строк, где в качестве ключа выступает значение столбца col2, а в качестве значения — name: $hData[^tbl2.hash[col2;name][$.type[string]]]
Вывод полученного хеша строк:
Ключ | Значение |
---|---|
14 | Дима |
5 | Вася |
44 | Вова |
$now[^date::now[]]
$now.day/$now.month/$now.year ${now.hour}:${now.minute}:$now.second: 1/12/2023 6:0:14
$now.week: 48
$now.weekyear: 2023
Вывод сегодняшней даты в sql формате ^now.sql-string[]: 2023-12-01 06:00:14
Вывод сегодняшней даты в виде UNIX timestamp ^now.unix-timestamp[]: 1701403214
Вывод сегодняшней даты в виде строки в формате GMT ^now.gmt-string[]: Fri, 01 Dec 2023 04:00:14 GMT
Номер последнего дня текущего месяца ^now.last-day[]: 31
Сдвиг даты на 5 дней назад ^now.roll[day](-5): 26/11/2023
Сдвиг полученой даты на 30 дней вперед ^now.roll[day](30): 26/12/2023
Запись таблицы $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: 1/12/2023
adate: 1/12/2023
mdate: 1/12/2023
Загрузка данных в таблицу $tbl3 из файла _test.cfg и вывод ($tbl3[^table::load[_test.cfg]]):
строка | name | col1 | col2 |
---|---|---|---|
1 | Вася | 3 | 5 |
2 | Дима | 4 | 14 |
Копирование файла (^file:copy[_test.cfg;_copy.cfg]): выполнено
Удаление файла (^file:delete[_test.cfg]): выполнено
Создаем объект: $hf [$hf[^hashfile::open[_test]]]: объект успешно создан
Количество записей: 6
Добавление новой записи (B57ED19C-C34E-47F4-9080-E07D0BEE74B8) на 3 дня:
$hf.[B57ED19C-C34E-47F4-9080-E07D0BEE74B8][ $.value[248249156] $.expires(3) ]Очистка hashfile от устаревших записей (^hf.cleanup[]): выполнено
Переменная | Значение | Комментарий |
---|---|---|
SERVER_NAME | parser.hostinghutor.com | DNS имя сервера |
QUERY_STRING | Для получения параметров используйте класс $form | |
HTTP_REFERER | Откуда пришел посетитель (броузер может не передавать эту информацию) | |
HTTP_USER_AGENT | CCBot/2.0 (https://commoncrawl.org/faq/) | Строка USER_AGENT броузера посетителя |
HTTP_X_FORWARDED_FOR | 3.233.221.90 | Обычно заполнена если пришли через прокси |
REMOTE_HOST | ||
REMOTE_ADDR | 3.233.221.90 | IP адрес посетителя |
PARSER_VERSION | 3.3.0 (compiled on i686-pc-linux-gnu) | Версия парсера (если не определена, то до 3.1.5) |
^int:sql{SELECT 2+2}:
Что-то непонятное с SQL. Возможно не положены куда надо драйвера.
Сообщение об ошибке:
driver failed to initialize client library '/usr/lib/mysql/libmysqlclient.so', /usr/lib/mysql/libmysqlclient.so: cannot open shared object file: No such file or directory
$sqldriversdir/libparser3mysql.so
Создание объекта типа 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 успешно создан.
Поле | Описание | Значения | ||
---|---|---|---|---|
на начало работы | на текущий момент | после ^memory:compact[] | ||
$status:rusage.utime (сек) | чистое время, затраченное текущим процессом | 0.003999 | 0.006998 | 0.007998 |
$status:rusage.stime (сек) | время, сколько система читала ваши файлы | 0.000999 | 0.001999 | 0.001999 |
$status:rusage.maxrss (блоков) | память, занимаемая процессом | 2584 | 3628 | 3628 |
$status:memory.used (КБ) | занято | 624 | 1044 | 892 |
$status:memory.free (КБ) | свободно (скорее всего фрагментирована) | 68 | 192 | 344 |
$status:memory.ever_allocated_since_compact (КБ) | выделено с момента последней сборки мусора | 594.582 | 1071.79 | 0.710938 |
$status:memory.ever_allocated_since_start (КБ) | выделено за все время обработки запроса | 594.582 | 1071.79 | 1073.58 |