parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Прошу прощения за тупизну

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[
&nbsp;&nbsp;$.a[1]
&nbsp;&nbsp;$.b[2]
&nbsp;&nbsp;$.c[3]
]
^hash1.foreach[key;value]{
&nbsp;&nbsp;$key=$value
}[&lt;br /&gt;]
</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{&lt;?xml version=&quot;1.0&quot; encoding=&quot;WINDOWS-1251&quot; ?&gt;
&lt;document&gt;
	&lt;t attr=&quot;привет&quot; n=&quot;123&quot;/&gt;
	&lt;t attr=&quot;пока&quot; n=&quot;234&quot; n2=&quot;xxx&quot;/&gt;
	&lt;text&gt;текст&lt;/text&gt;
&lt;/document&gt;}]
	</pre>
	
	Объект xdoc создан.<br />
	
	Достаем все элементы &lt;t /&gt; $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>