Пример выполнения работы № 1
Вариант-N: разработать веб-страницу (HTML, CSS), содержащую форму, представленную на рисунке 5. Использовать табличную вёрстку.
Рисунок 5 – форма для варианта-N
Решение
Файл form.html
<html>
<head>
<title>Регистрация пользователя</title>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1251" />
<link rel="stylesheet" type="text/css" media="screen"
href="form.css" />
</head>
<body>
<table border="0">
<form action="#" method="post">
<tr>
<td align="right">Фамилия:</td>
<td align="left"><input type="text" name="name_l" size="50"
maxlength="200" value="" /></td>
</tr>
<tr>
<td align="right">Имя:</td>
<td align="left"><input type="text" name="name_f" size="50"
maxlength="200" value="" /></td>
</tr>
<tr>
<td align="right">Отчество:</td>
<td align="left"><input type="text" name="name_m" size="50"
maxlength="20" value="" /></td>
</tr>
<tr>
<td align="right">Дата рождения:</td>
<td align="left">
<input type="text" name="bd_d" size="2" maxlength="2" value="" />.
<input type="text" name="bd_m" size="2" maxlength="2" value="" />.
<input type="text" name="bd_y" size="4" maxlength="4" value="" />
</td>
</tr>
<tr>
<td align="right"> </td>
<td align="left"><input type="submit" name="go"
value="Регистрация" /></td>
</tr>
</form>
</table>
</body>
</html>
Файл form.css
body {background-color: #CCCCFF}
input {border: 1px solid #660099; background-color: #CCE6FF}
Пример выполнения работы № 2
Вариант-N: написать скрипт, получающий в качестве параметра командной строки двоичное число и представляющий его в десятичной системе счисления.
Решение
Файл lab2.php
<?php
// Если из командной строки не передано число -- прекратить работу.
if ($argc<2)
{
die("Укажите двоичное число в качестве параметра командной
строки.");
}
// Извлечение числа из параметров, переданных из командной строки.
$num = $argv[1];
// Проверка длины введённых данных.
if (strlen($num)>100)
{
die('Вы ввели слишком длинное число.');
}
/* Проверка того, что из командной строки передано двоичное число.
Данную проверку можно выполнить более эффективно с помощью регулярных
выражений, что и будет показано в закомментированном блоке кода. */
for ($i=0; $i<strlen($num); $i++)
{
if (($num[$i]!='0')&&($num[$i]!='1'))
{
die('Переданное число не является двоичным.');
}
}
/* Та же проверка через регулярные выражения:
if (preg_match("/[^01]/", $num))
{
die('Переданное число не является двоичным.');
}
*/
// Конвертация и вывод результата.
echo bindec($num);
?>
Пример выполнения работы № 3
Вариант-N: написать функцию, формирующую список только файлов в указанном из командной строки каталоге. В список включить размер файлов в байтах и килобайтах, а также время создания, модификации и последнего обращения к файлу.
Решение
Файл lab3.php
<?php
// Если из командной строки не передано имя
// каталога -- прекратить работу.
if ($argc<2)
{
die("Укажите имя каталога в качестве параметра командной
строки.");
}
// Извлечение имени каталога из
// параметров, переданных из командной строки.
$dir_name = $argv[1];
// Проверка существования каталога.
if (!is_dir($dir_name))
{
die('Такого каталога не существует.');
}
// Открытие каталога.
$dir_resource = opendir($dir_name);
// Проверка успешности операции открытия каталога.
if ($dir_resource === NULL)
{
die('Не удалось открыть каталог.');
}
// Чтение каталога.
while (($file_name = readdir($dir_resource)) !== false)
{
// Получение полного имени элемента.
$full_name = $dir_name.'/'.$file_name;
// Проверка того, что элемент
// является файлом.
if (is_file($full_name))
{
// Вывод информации.
echo $file_name.' ';
echo filesize($full_name).
' ('.round(filesize($full_name)/1024,2).' Kb) ';
echo date('Y.m.d H:i:s',
filectime($full_name)).', ';
echo date('Y.m.d H:i:s',
filemtime($full_name)).', ';
echo date('Y.m.d H:i:s',
fileatime($full_name))."\n";
}
}
// Закрытие каталога.
closedir($dir_resource);
?>
Пример выполнения работы № 4
Вариант-N: в произвольном тексте все целые числа возвести в квадрат и вывести красным цветом.
Решение
Файл lab4.php
<?php
// Чтение текста из файла.
if (is_file('text.txt'))
{
$text = file_get_contents('text.txt');
}
else
{
die('Файл данных text.txt не найден.');
}
// Callback-функция возведения возведения в квадрат
// найденных целых чисел.
function square($x)
{
return '<span style="color:red">'.($x[0]*$x[0]).'</span>';
}
// Поиск и замена целых чисел.
$text = preg_replace_callback('/\d+/', 'square', $text);
// Вывод результата
echo $text;
?>
Пример выполнения работы № 5
Вариант-N: написать скрипт, выполняющий указанное количество раз случайный запрос (из некоторого набора) и определяющий минимальное, максимальное и среднее время выполнения запроса.
Решение
Файл lab5.php
<?php
// Количество повторений запроса
$iterations = 100;
// Массив с запросами
$queries = array (
"show databases",
"show tables from `mysql`",
"select * from `mysql`.`mysql_user`",
"select * from `mysql`.`help_relation`",
"select * from `mysql`.`help_topic`");
// Подсоединение к СУБД
$lnk = mysql_connect('127.0.0.1', 'root', '123456');
if ($lnk === FALSE) { die(); }
// инициализация массива оставшихся итераций для каждого запроса
for ($i=0;$i<sizeof($queries);$i++)
{
$final_data[$i]['iterations'] = $iterations;
}
// Продолжать выполнение следует в случае, если хотя бы
// для одного запроса не был исчерпан лимит итераций
function can_continue($final_data)
{
$sum = 0;
for ($i=0;$i<sizeof($final_data);$i++)
{
$sum+=$final_data[$i]['iterations'];
}
if ($sum>0)
{
return TRUE;
}
else
{
return FALSE;
}
}
// Выполнять следует случайный запрос, однако при
// этом у него не должен быть исчерпан лимит итераций
function get_query_number($final_data)
{
$x = mt_rand(0, sizeof($final_data)-1);
if ($final_data[$x]['iterations']>0)
{
return $x;
}
else
{
for ($i=0; $i<sizeof($final_data); $i++)
{
if ($final_data[$i]['iterations']>0)
{
return $i;
}
}
}
}
// Функция подсчёта среднего времени выполнения запроса
function avg($arr)
{
if (sizeof($arr)==0)
{
return 0;
}
$sum = 0;
for ($i=0; $i<sizeof($arr); $i++)
{
$sum+=$arr[$i];
}
return $sum/sizeof($arr);
}
// Основной цикл: выполнение запросов и сбор значений времени
while (can_continue($final_data))
{
$x = get_query_number($final_data);
$t1 = microtime(TRUE);
mysql_query($queries[$x]);
$t2 = microtime(TRUE);
$final_data[$x]['avg'][] = $t2-$t1;
$final_data[$x]['iterations']--;
}
// Генерация и вывод результатов
for ($i=0;$i<sizeof($queries);$i++)
{
echo 'Query ('.($i+1).') ['.$queries[$i].']:'."\n";
echo 'Min: '.min($final_data[$i]['avg'])."\n";
echo 'Max: '.max($final_data[$i]['avg'])."\n";
echo 'Avg: '.avg($final_data[$i]['avg'])."\n\n";
}
// Закрытие соединения с СУБД
mysql_close($lnk);
?>
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|