Скачиваний:
70
Добавлен:
15.03.2015
Размер:
35.26 Кб
Скачать

Санкт-Петербургский государственный университет телекоммуникаций

имени профессора Бонч-Бруевича

Отчет к лабораторной работе №3 «PHP»

по предмету «Интернет-технологии»

Выполнил: студент группы

ИСТ-83 Бесаев С.

Преподаватель: Айвазян В.Б.

Санкт-Петербург

2012

Задание 1

<html>

<head>

<title>Задания 1-3</title>

</head>

<body>

<h1>Форма для регистрации участников</h1>

<!-- метод передачи данных - GET -->

<form method="GET">

Имя:<br/>

<input type="text" name="name"><br/>

Фамилия:<br/>

<input type="text" name="surname"><br/>

E-mail:<br/>

<input type="text" name="email"><br/><br/>

Выберите курс, который вы бы зотели посещать:<br/>

<input type="radio" name="course" checked="checked" value="PHP">   PHP<br/>

<input type="radio" name="course" value="Lisp">   Lisp<br/>

<input type="radio" name="course" value="Perl">   Perl<br/>

<input type="radio" name="course" value="Unix">   Unix<br/>

<h3>Что вы хотите, чтобы мы знали о вас?</h3>

<textarea name="text" rows="5" cols="40"></textarea><br/>

<input type="submit" value="Отправить">

</form>

</body>

</html>

Задание 2

<html>

<head>

<title>Задания 1-3</title>

</head>

<body>

<h1>Форма для регистрации участников</h1>

<!-- метод передачи данных - POST -->

<form method="POST">

Имя:<br/>

<input type="text" name="name"><br/>

Фамилия:<br/>

<input type="text" name="surname"><br/>

E-mail:<br/>

<input type="text" name="email"><br/><br/>

Выберите курс, который вы бы зотели посещать:<br/>

<input type="radio" name="course" checked="checked" value="PHP">   PHP<br/>

<input type="radio" name="course" value="Lisp">   Lisp<br/>

<input type="radio" name="course" value="Perl">   Perl<br/>

<input type="radio" name="course" value="Unix">   Unix<br/>

<h3>Что вы хотите, чтобы мы знали о вас?</h3>

<textarea name="text" rows="5" cols="40"></textarea><br/>

<input type="submit" value="Отправить">

</form>

</body>

</html>

Задание 3

<?php

//вывод соединенных строк - результатов, пришедших с POST-запросом

echo "Здравствуйте, ".$_POST["name"]." ".$_POST["surname"]."<br/>";

echo "Вы выбрали для изучения курс по ".$_POST["course"];

?>

Задание 4

<?php

//переменные

$x = 10;

$y = 100;

//функция умножения на два

function double() {

//расширяем область видимости перемеменной $x

global $x;

//присваевываем этой переменной новое значение

$x = 20;

//локальная переменная функции $y

$y = 200;

//умножение переменных на два

$x *=2;

$y *=2;

echo 'Переменная $x внутри функции:';

echo "$x<br/>";

echo 'Переменная $y внутри функции:';

echo "$y<br/>";

}

double();

// x = 400, так как был использован в функции double

// y = 100, так как не была определена как глобальная

echo 'Переменная $x вне функции:' . $x . '<br/>';

echo 'Переменная $y вне функции:' . $y . '<br/>';

?>

Задание 5

<?php

function double() {

//статичная переменная сохраняет свое значение при выходе из функции

static $count = 1;

//увеличиваем значение на 1

$count=$count+1;

echo "Количество вызовов функции: $count <br/>";

}

//вызываем функцию дважды

double();

double();

?>

Задание 6

<?php

function double() {

//статичная переменная сохраняет свое значение при выходе из функции

static $count = 1;

//увеличиваем значение на 1

$count=$count+1;

//строка с апострофами. не выводится значение $count

echo 'Количество вызовов функции: $count <br/>';

}

//вызываем функцию дважды

double();

double();

?>

Задание 7,15

<?php

//если из формы пришли пароли

if (isset($_POST['pass1']) && isset($_POST['pass2'])) {

//используем тернарный оператор для сравнения строк

//http://php.net/manual/ru/language.operators.comparison.php

echo "Проверки:<br/>";

//true - если переменные равны

echo '$_POST["pass1"] == $_POST["pass2"]: '.($_POST["pass1"]==$_POST["pass2"]?"TRUE":"FALSE")."<br/>";

//true - если переменные равны и совпадает тип данных

echo '$_POST["pass1"] === $_POST["pass2"]: '.($_POST["pass1"]===$_POST["pass2"]?"TRUE":"FALSE")."<br/>";

//true - если переменные не равны

echo '$_POST["pass1"] != $_POST["pass2"]: '.($_POST["pass1"]!=$_POST["pass2"]?"TRUE":"FALSE")."<br/>";

//true - если переменные не равны ИЛИ имеют разный тип данных

echo '$_POST["pass1"] <> $_POST["pass2"]: '.($_POST["pass1"]<>$_POST["pass2"]?"TRUE":"FALSE")."<br/>";

//true - если первая переменная меньше второй

echo '$_POST["pass1"] < $_POST["pass2"]: '.($_POST["pass1"]<$_POST["pass2"]?"TRUE":"FALSE")."<br/>";

//true - если вторая переменная меньше первой

echo '$_POST["pass1"] > $_POST["pass2"]: '.($_POST["pass1"]>$_POST["pass2"]?"TRUE":"FALSE")."<br/>";

//true - если первая переменная меньше или равна второй

echo '$_POST["pass1"] <= $_POST["pass2"]: '.($_POST["pass1"]<=$_POST["pass2"]?"TRUE":"FALSE")."<br/>";

//true - если вторая переменная меньше или равна первой

echo '$_POST["pass1"] >= $_POST["pass2"]: '.($_POST["pass1"]>=$_POST["pass2"]?"TRUE":"FALSE")."<br/>";

}else{

//иначе

echo "Пароли не указаны";

}

?>

Задания 8,9

<?php

if (isset($_POST['num'])) {

//присвоим значение переменной $num1

$num=$_POST['num'];

//выведем на экран значения пришедших строк с помощью конкатенации

echo "Вы ввели число:".$num;

}else{

//иначе выведем ошибку

echo "Не было введено число";

}

?>

Задание 10

<?php

//объявим именованную константу HELLO со следующим значением

define("HELLO","Привет, студент");

//выведем значение константы

echo HELLO;

echo "<br/>";

//объявим переменную с именем созданной константы

$const = "HELLO";

//выведем значение константы по имени из переменной

echo constant($const);

?>

Задание 11

<?php

//объявим именованную константу HELLO со следующим значением

define("HELLO","Привет, студент");

//выведем значение константы

echo HELLO;

echo "<br/>";

//объявим переменную с именем созданной константы

$const = "HELLO";

//выведем значение константы по имени из переменной

echo constant($const);

echo "<br/>";

//выведем имя текущего файла

echo "Имя файла: ".__FILE__;

echo "<br/>";

//номер строки (18)

echo "Номер текущей строки: ".__LINE__;

?>

Задание 12

<?php

$hourSec = 60*60;

echo "Секунд в часе: ".$hourSec."<br/>";

$daySec=$hourSec*24;

echo "Секунд в сутках: ".$daySec."<br/>";

$weekSec=$daySec*7;

echo "Секунд в неделе: ".$weekSec."<br/>";

?>

Задание 13

<?php

$i=4;

$j=4;

//значение $v будет равно 4, поскольку постинкремент выполнится после присваивания значения переменной $v;

$v = $i++;

echo $v;

echo "<br/>";

//значение $z будет равно 5, поскольку преинкремент выполнится сразу же

$z = ++$j;

echo $z;

?>

Задание 14,16

<?php

if (!empty($_POST['op1'])) {

//приведение строк к целочисленным значениям (int)

$a = (int) $_POST['op1'];

$b = (int) $_POST['op2'];

//выполнение заданной операции

switch ($_POST['action']) {

//сложение

case "sum":

$res = $a+$b;

break;

//вычитание

case "sub":

$res = $a-$b;

break;

//умножение

case "multiply":

$res = $a*$b;

break;

//деление с проверкой на 0

case "divide":

if ($b == 0) {

$res = "inf";

} else {

$res = (int) $a/$b;

}

break;

//ошибка

default:

$res = "Error";

}

} else {

$res = '';

}

echo $res;

?>

Задание 17

<?php

//цикл от 1 до 10

for($i=1;$i<11;$i++) {

echo "Строка ".$i."<br/>";

}

?>

<?php

//цикл от 1 до 10

for($i=1;$i<11;$i++) {

echo "Строка ".$i."<br/>";

}

?>

Задание 18

<?php

//деление a/b

$a = 10;

for ($b=-5;$b<=5;$b++) {

//если b равно нулю - сразу переходим к следующей итерации

if ($b==0) continue;

//выводим результат деления

echo "$a/$b=".($a/$b);

echo "<br>";

}

Задание 19

<?php

//вывод информации о php

phpinfo();

?>

Задание 20

<?php

//захэшированный пароль - 123123

if (md5($_POST['pass']) == '4297f44b13955235245b2497399d7a93') {

echo "authorized";

} else {

echo "wrong password";

}

?>

Задание 21

<?php

function toLower($str) {

echo "В нижнем регистре: " . strtolower($str) . "<br/>";

}

function toUpper($str) {

echo "В верхнем регистре: " . strtoupper($str) . "<br/>";

}

//вызываем пользовательские функции и передаем туда аргумент - строку из формы

toLower($_POST['string']);

toUpper($_POST['string']);

?>

Задание 22

<?php

function firstToUpper($str) {

echo "Первая буква верхнем регистре: " . ucfirst($str) . "<br/>";

}

//вызываем пользовательские функции и передаем туда аргумент - строку из формы

firstToUpper($_POST['string']);

?>

Задание 23

<?php

function firstInWordToUpper($str) {

echo "Первая буква каждого слова в верхнем регистре: " . ucwords($str) . "<br/>";

}

//вызываем пользовательские функции и передаем туда аргумент - строку из формы

firstInWordToUpper($_POST['string']);

?>

Задание 24

<?php

//передача аргумента по ссылке

function firstInWordToUpperByRef(&$str) {

$str = ucwords($str);

}

//вызываем пользовательские функции и передаем туда аргумент - строку из формы

firstInWordToUpperByRef($_POST['string']);

//выводим результат

echo "Первая буква каждого слова в верхнем регистре: " . $_POST['string'] . "<br/>";

?>

Задание 25

<?php

//значение $flag, если не передано в функцию = true

function transform($str, $flag = true) {

if ($flag) {

echo "В верхнем регистре: " . strtoupper($str) . "<br/>";

} else {

echo "В нижнем регистре: " . strtolower($str) . "<br/>";

}

}

//вызываем пользовательские функции и передаем туда аргумент - строку из формы, не передаем $flag

transform($_POST['string']);

?>

Задание 26

<?php

include('20_script.php');

?>

Задание 27

<?php

include_once('20_script.php');

//этот инклюд уже не сработает

include_once('20_script.php');

?>

Задание 28

<?php

//отличается от include тем, что скрипт не завершает работу в случае отсутствия подключаемого файла

require('20_script.php');

?>

Задание 29

<?php

require_once('20_script.php');

?>

Задание 30

<?php

// Задание 30 - проверка существования функции

include("function.php");

// если функция существует, то она существует

if (function_exists("myfunction")) {

echo "Функция myfunction существует";

// если функция не существует, то она не суще

} else {

echo "Функция myfunction не существует";

}

?>

Задание 31

<?php

// Задание 31 - определение элементов массива

// одномерный массив

$days = array(

1 => "Понедельник",

2 => "Вторник",

3 => "Среда",

4 => "Четверг",

5 => "Пятница",

6 => "Суббота",

7 => "Воскресенье"

);

// двумерный массив

$disciplines = array(

"Пятница" => array(

"13.00" => "Лекция БЖД",

"14.45" => "Лекция СТМО"

)

);

if (is_array($disciplines)) {

echo "disciplines является массивом";

} else {

echo "disciplines не является массивом";

}

?>

Задание 32

<?php

// Задание 32 - использование цикла foreach для вывода массива

foreach ($days as $key => $value) {

print "$key-й день недели - $value <br>";

}

?>

Задание 33

<?php

// Задание 33 - расширение массива

$capitals["Australia"] = "Canberra";

$capitals["Russia"] = "Moscow";

$capitals["Belarus"] = "Minsk";

$capitals["Ukraine"] = "Kiev";

$capitals["Israel"] = "Jerusalem";

$capitals["USA"] = "Washington";

$capitals["Germany"] = "Berlin";

$capitals["France"] = "Paris";

$capitals["UK"] = "London";

$capitals["Iran"] = "Tegeran";

foreach ($capitals as $key => $value) {

print "Столица $key - $value <br>";

}

?>

Задание 34

<?php

// Задание 34 - вывод количества элементов массива

$capitals["Australia"] = "Canberra";

$capitals["Russia"] = "Moscow";

$capitals["Belarus"] = "Minsk";

$capitals["Ukraine"] = "Kiev";

$capitals["Israel"] = "Jerusalem";

$capitals["USA"] = "Washington";

$capitals["Germany"] = "Berlin";

$capitals["France"] = "Paris";

$capitals["UK"] = "London";

$capitals["Iran"] = "Tegeran";

echo "Количество элементов в массиве capitals - ".count($capitals);

?>

Задание 35

<?php

// Задание 35 - сортировка массива с помощью функции sort()

$days = array(

1 => "Понедельник",

2 => "Вторник",

3 => "Среда",

4 => "Четверг",

5 => "Пятница",

6 => "Суббота",

7 => "Воскресенье"

);

sort($days);

foreach ($days as $key => $value) {

print "$key - $value <br>";

}

?>

Задание 36

<?php

// Задание 36 - сортировка массива с помощью функций sort() и asort()

$capitals["Australia"] = "Canberra";

$capitals["Russia"] = "Moscow";

$capitals["Belarus"] = "Minsk";

$capitals["Ukraine"] = "Kiev";

$capitals["Israel"] = "Jerusalem";

$capitals["USA"] = "Washington";

$capitals["Germany"] = "Berlin";

$capitals["France"] = "Paris";

$capitals["UK"] = "London";

$capitals["Iran"] = "Tegeran";

$capitals2 = $capitals;

sort($capitals);

asort($capitals2);

echo "Массив, отсортированный с помощью sort():<br>";

foreach ($capitals as $key => $value) {

print "$key - $value <br>";

}

echo "Массив, отсортированный с помощью asort():<br>";

foreach ($capitals2 as $key => $value) {

print "$key - $value <br>";

}

// Функцию asort стоит применять при сортировке ассоциативных массивов,

// если требуется сохранить его ключи. Функция sort ключи не сохраняет.

?>

Соседние файлы в папке ИТ Лаб 2.01