Новости | 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>