| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Hwat 03.04.2004 17:53
Вроде бы что-то двигается:=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2004.04.03 17:50:14 =~=~=~=~=~=~=~=~=~=~=~=
<h1>Parser 3.x test page</h1>
<p>Если вы видите эту страницу, значит вы установили парсер и пытаетесь его протестировать :)</p>
<p>Чтобы увидеть полные пути к конфигурационным файлам и DOCUMENT_ROOT - закоментируйте метод postprocess[]</p>
<p>Если что-либо выделено красным цветом, значит или что-то настроено неверно или автоматическое определение невозможно
(это относится к поиску файлов библиотек и кодовых таблиц при заданных относительных путях).</p>
<hr />
<h2>Глобальные переменные, заданые в конфигурационном auto.p</h2>
<h3>$CHARSETS:</h3>
<table cellpadding="5" cellspacing="0" border="1">
<tr>
<td>windows-1251</td>
<td>$charsetsdir/windows-1251.cfg</td>
<td>относительный путь. <b style="color:red">проверка невозможна</b></td>
</tr>
<tr>
<td>koi8-r</td>
<td>$charsetsdir/koi8-r.cfg</td>
<td>относительный путь. <b style="color:red">проверка невозможна</b></td>
</tr>
</table>
<h3>$SQL:</h3>
<table cellpadding="5" cellspacing="0" border="1">
<tr><td>mysql</td><td>$sqldriversdir/parser3mysql.dll (относительный путь. <b style="color:red">проверка невозможна</b>)</td><td>$sqldriversdir/libmySQL.dll (относительный путь. <b style="color:red">проверка невозможна</b>)</td></tr>
</table>
<p>
<b>DOCUMENT_ROOT:</b> <br />
<b>$response:charset:</b> WINDOWS-1251<br />
<b>$request:charset:</b> WINDOWS-1251<br />
<b>$request:uri:</b> <br />
<b>$request:query:</b> <br />
<b>$SQL.connect-string:</b> определена<br />
<b>$CLASS_PATH:</b>
<br />
<table cellpadding="5" cellspacing="0" border="1">
<tr><td>/classes/</td><td><b style="color:red">каталога не существует</b></td></tr>
</table>
</p>
<h2>Демонстрация работы парсера</h2>
<h3>Демонстрация работы с cookie</h3>
<p>
Чтение $cookie:test: не определена<br />
Запись в cookie значения ABC $cookie:test[ABC] (нажмите Reload для проверки)<br />
</p>
<h3>Демонстрация работы математических операторов</h3>
<p>
^eval(2+2): 4<br />
^math:random(1000): 711
</p>
<h3>Работа со строками</h3>
<p>
Задание $str[АбвГде] <br />
Длина строки ^str.length[]: 6<br />
Строка в верхнем регистре ^str.upper[]: АБВГДЕ<br />
Строка в нижнем регистре ^str.lower[]: абвгде<br />
Первые 2 символа строки ^str.left(2): Аб<br />
Последние 3 символа строки ^str.right(3): Где<br />
2-4 символы строки ^str.mid(1;3): бвГ<br />
Позиция символа 'Г' в строке ^str.pos[Г]: 3<br />
Позиция символа 'X' в строке ^str.pos[X]: -1<br />
Замена комбинации символов 'вГ' на XX с помощью ^str.match[вГ][]{XX}: АбXXде<br />
Замена комбинации символов 'в' на 'Y', 'Г' на 'Z' с помощью ^str.replace[$repl]: АбYZде<br />
</p>
<h3>Чтение значений из формы</h3>
<p>
$form:a: не определено<br />
Safe преобразование $form:a в целое число: ^form:a.int(1): 1<br />
$form:b не определено
<br />
$form:qtail: не определено<br />
<a href="?a=321&b=%C0&b=%C1&b=%C2%C3%C4?ABC">идем сюда чтобы проверить чтение значений формы</a>
</p>
<h3>Задание и вывод значений у объекта hash</h3>
<p>
<pre>
$hash1[
$.a[1]
$.b[2]
$.c[3]
]
^hash1.foreach[key;value]{
$key=$value
}[<br />]
</pre>
a=1
<br />
b=2
<br />
c=3
</p>
<h3>Задание и вывод значений у объекта table</h3>
<pre>$tbl1[^table::create{name col1 col2
Вася 3 5
Дима 4 14}]</pre>
Количество строк таблицы $tbl1: 2<br />
Количество столбцов таблицы $tbl1: 3<br />
Вывод названий столбцов таблицы:<br />
<table cellpadding="3" cellspacing="0" border="1">
<tr>
<th width="50%">строка</th>
<th width="50%">column</th>
</tr>
<tr>
<td>1</td>
<td>name</td>
</tr>
<tr>
<td>2</td>
<td>col1</td>
</tr>
<tr>
<td>3</td>
<td>col2</td>
</tr>
</table>
<p>
Вывод значений таблицы $tbl1:<br />
<table cellpadding="3" cellspacing="0" border="1">
<tr>
<th width="25%">строка</th>
<th width="25%">name</th><th width="25%">col1</th><th width="25%">col2</th>
</tr>
<tr>
<td>1</td>
<td>Вася</td><td>3</td><td>5</td>
</tr>
<tr>
<td>2</td>
<td>Дима</td><td>4</td><td>14</td>
</tr>
</table>
</p>
<pre>$tbl2[^table::create{name col1 col2
Вова 3 44}]</pre>
Количество строк таблицы $tbl2: 1<br />
<p>
join таблицы $tbl1 к таблице $tbl2 [^tbl2.join[$tbl1]]<br />
Количество строк таблицы $tbl2 ^tbl2.count[]: 3<br />
Вывод полученой таблицы:<br />
<table cellpadding="3" cellspacing="0" border="1">
<tr>
<th width="25%">строка</th>
<th width="25%">name</th><th width="25%">col1</th><th width="25%">col2</th>
</tr>
<tr>
<td>1</td>
<td>Вова</td><td>3</td><td>44</td>
</tr>
<tr>
<td>2</td>
<td>Вася</td><td>3</td><td>5</td>
</tr>
<tr>
<td>3</td>
<td>Дима</td><td>4</td><td>14</td>
</tr>
</table>
</p>
<p>select и вывод записей таблицы у который $col1 равен 3: $out_table[^tbl2.select($tbl2.col1 == 3)]<br />
<table cellpadding="3" cellspacing="0" border="1">
<tr>
<th width="25%">строка</th>
<th width="25%">name</th><th width="25%">col1</th><th width="25%">col2</th>
</tr>
<tr>
<td>1</td>
<td>Вова</td><td>3</td><td>44</td>
</tr>
<tr>
<td>2</td>
<td>Вася</td><td>3</td><td>5</td>
</tr>
</table>
</p>
<p>Получение из таблицы - хеша таблиц, где в качестве ключа выступает значение $col1: $tables_hash[^tbl2.hash[col1][$.distinct[tables]]]<br />
</p>
<p>Вывод полученного хеша таблиц:
<table cellpadding="2" cellspacing="0" border="1" width="35%">
<tr align="center">
<th>Ключ</th>
<th>Значение</th>
</tr>
<tr>
<td>3</td>
<td>
<table cellpadding="3" cellspacing="0" border="1" width="100%">
<tr>
<th width="25%">строка</th>
<th width="25%">name</th><th width="25%">col1</th><th width="25%">col2</th>
</tr>
<tr>
<td>1</td>
<td>Вова</td><td>3</td><td>44</td>
</tr>
<tr>
<td>2</td>
<td>Вася</td><td>3</td><td>5</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>4</td>
<td>
<table cellpadding="3" cellspacing="0" border="1" width="100%">
<tr>
<th width="25%">строка</th>
<th width="25%">name</th><th width="25%">col1</th><th width="25%">col2</th>
</tr>
<tr>
<td>1</td>
<td>Дима</td><td>4</td><td>14</td>
</tr>
</table>
</td>
</tr>
</table>
</p>
<h3>Работа с датами</h3>
<p>
$now[^date::now[]]<br />
Получение сегодняшней даны $now.day/$now.month/$now.year: 3/4/2004<br />
Вывод сегодняшней даты в sql формате ^now.sql-string[]: 2004-04-03 17:40:15<br />
Сдвиг даты на 5 дней назад ^now.roll[day](-5): 29/3/2004<br />
Сдвиг полученой даты на 30 дней вперед ^now.roll[day](30): 28/4/2004<br />
</p>
<h3>Работа с файлами</h3>
<p>
Запись таблицы $tbl1 в файл DOCUMENT_ROOT/_test.cfg [^tbl1.save[/_test.cfg]]:
<b>файл успешно создан</b>
</p>
<p>Получение параметров сохраненного файла $fstat[^file::stat[/_test.cfg]]:<br />
Размер файла, байт [$fstat.size]: 34<br />
cdate: 3/4/2004<br />
adate: 3/4/2004<br />
mdate: 3/4/2004<br />
</p>
<p>
Загрузка данных в таблицу $tbl3 из файла DOCUMENT_ROOT/_test.cfg и вывод [$tbl3[^table::load[/_test.cfg]]]:<br />
<table cellpadding="3" cellspacing="0" border="1">
<tr>
<th width="25%">строка</th>
<th width="25%">name</th><th width="25%">col1</th><th width="25%">col2</th>
</tr>
<tr>
<td>1</td>
<td>Вася</td><td>3</td><td>5</td>
</tr>
<tr>
<td>2</td>
<td>Дима</td><td>4</td><td>14</td>
</tr>
</table>
</p>
<h3>Работа с переменными окружения</h3>
<b>QUERY_STRING:</b> $env:QUERY_STRING=''
<br />
<b>HTTP_REFERER:</b> $env:HTTP_REFERER=''
<br />
<b>HTTP_USER_AGENT:</b> $env:HTTP_USER_AGENT=''
<br />
<b>REMOTE_HOST:</b> $env:REMOTE_HOST=''
<br />
<b>REMOTE_ADDR:</b> $env:REMOTE_ADDR=''
<h3>Работа с SQL</h3>
<p>
^int:sql{SELECT 2+2}:
<b style="color:red">Что-то непонятное с SQL.</b> Наверное не положены куда надо драйвера.
<br />Сообщение об ошибке:
<blockquote>
can't open the module
<br /><b>$sqldriversdir/parser3mysql.dll</b>
</blockquote>
</p>
<h3>Работа с XML</h3>
<p>
Создание объекта типа xdoc:<br />
<pre>
$document[^xdoc::create{<?xml version="1.0" encoding="WINDOWS-1251" ?>
<document>
<t attr="привет" n="123"/>
<t attr="пока" n="234" n2="xxx"/>
<text>текст</text>
</document>}]
</pre>
Объект xdoc создан.<br />
Достаем все элементы <t /> $elements[^document.select[//t]] :<br />
Количество найденых элементов: 2<br />
Вывод найденых элементов с помощью foreach (порядок произвольный):<br >
имя: 't', тип: '1', кол-во аттрибутов: '2', аттрибуты: n='123', attr='привет'
<br />
имя: 't', тип: '1', кол-во аттрибутов: '3', аттрибуты: n2='xxx', n='234', attr='пока'
</p>