- •Учебно-методические указания по выполнению контрольной работы
- •Цель работы:
- •Задание
- •Требования к отчету
- •Приложения (html и php код страниц, иные использованные коды). Порядок сдачи отчета
- •Существуют три основных области применения php.
- •Основы языка php
- •Массивы
- •Одинарные кавычки
- •Двойные кавычки
- •Полезные функции
- •Преобразование в массив
- •Область видимости переменной
- •Ключевое слово global
- •Сравнение типов и результатов функций
- •Html-формы (get и post)
- •Имена переменных кнопки-изображения
- •Управление выполнением программы: if else
- •Управление выполнением программы: elseif
- •Управление выполнением программы: elseif
Управление выполнением программы: if else
Управление выполнением программы: elseif
Управление выполнением программы: elseif
Управление выполнением программы: switch
Управление выполнением программы: switch
Основы PHP – циклы
Операторы: инкремента и декремента
++ Увеличивает значение переменной на единицу
-- Уменьшает значение переменной на единицу
PRE инкремент/декремент
++$a Увеличивает $a на единицу и
возвращает значение $a.
--$a Уменьшает $a на единицу и
возвращает значение $a.
POST инкремент/декремент
$a++ Возвращает значение $a, а затем
увеличивает $a на единицу.
$a-- Возвращает значение $a, а затем
уменьшает $a на единицу.
Циклы: for
Циклы: while
while (условие){
Инструкция 1;
Инструкция 2;
...
}
$sum = 1
while ($i<=30){
$sum += 3;
$i++;
print($sum);
}
Циклы: do… while
do{
Инструкция 1;
Инструкция 2;
...
}while(условие)
$i = 1;
$sum = 1;
do{
$sum += 3;
$i++;
print($sum);
}while($i<=30)
Управление циклами
Цикл: foreach (короткий)
foreach ($array as $value){
Инструкция;
}
//$value - доступ к значению элемента массива
$user = array("John",
"root",
"p@ssw0rd",
"312-34-85");
foreach($user as $val){
print("$val<BR>");
}
Функции: описание и вызов
Функция – программный блок, который может многократно выполняться в любом месте сценария.
/* Описание функции */
function sayHello(){
echo "Hello, world!";
}
/* Вызов функции*/
sayHello();
/* Проверка */
if(function_exists("sayHello")){}
Функции и их аргументы: описание и вызов
function sayHello($name){
echo "Hello, $name!", "<hr>";
}
//Вызываем функцию, вариант 1
sayHello("Иван");
//Вызываем функцию, вариант 2
$name = "Петр";
sayHello($name);
//Вызываем функцию, вариант 3
$func = "sayHello";
$func("Игорь");
Функции: аргументы по умолчанию
function sayHello($name="Гость"){
echo "Hello, $name!", "<hr>";
}
sayHello("Иван"); // Hello, Иван!
sayHello("Петр"); // Hello, Петр!
sayHello(); // Hello, Гость!
Функции: области видимости
$a = 1; // глобальная область видимости
function Test(){
echo $a; // локальная область видимости
}
Test(); // Не выведет ничего.
$a = 1; $b = 2;
function Sum(){
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b; //Выведет 3
//Другой вариант
function Sum(){
$GLOBALS["b"] = $GLOBALS["a"] +
$GLOBALS["b"];
}
Функции: статические переменные
function Test(){
$a = 0;
echo $a++;
}
Test(); //Выведет 0
Test(); //Выведет 0
Test(); //Выведет 0
function Test(){
static $a = 0;
echo $a++;
}
Test(); //Выведет 0
Test(); //Выведет 1
Test(); //Выведет 2
Функции: возврат значений
function getSum($num1, $num2){
return $num1 + $num2;
}
$result = getSum(10, 435);
echo $result;
//или
echo getSum(10, 435);
Рекурсивный вызов функций
function factorial($n)
{
if ($n == 0) return 1;
return $n * factorial($n-1);
}
$result = factorial(5)
echo "5! = " . $result;
Функции для работы с переменными
Нижеперечисленные функции возвращают TRUE или FALSE
в зависимости от того, соответствует ли выражение
указанному типу.
is_array(expression)
is_bool(expression)
is_float(expression)
is_integer(expression)
is_numeric(expression)
is_string(expression)
is_null(expression)
intval(expression [, int base])
Возвращает целочисленное значение аргумента.
floatval(expression)
Возвращает вещественное значение аргумента.
Математические функции
max – Возвращает наибольшее число из заданых.
acos – Возвращает значение арккосинуса
значения.
cos – Возвращает косинус числа в радианах.
min – Возвращает наименьшее число из заданых.
decbin – Возвращает двоичное представление
целого числа.
log - Возвращает натуральный логарифм
значения.
pi – Возвращает приблизительное число пи.
rad2deg – Возвращает в градусах значение
аргумента заданного в радианах.
round – Возвращает округленное до ближайшего
целого числа значение заданное аргументом.
sqrt – Извлечение квадратного корня из числа.
rand – Возвращает число, лежащее между двумя
необязательными аргументами включительно.
Работа с протоколом HTTP – формы
Обработка запросов
Для GET:
$name = $_GET["name"];
$age = $_GET["age"] * 1;
Для POST:
$name = $_POST["name"];
$age = $_POST["age"] * 1;
Передача и обработка массивов
<input type=checkbox name='kurs[]' value='PHP'>
<input type=checkbox name='kurs[]' value='ASP'>
<input type=checkbox name='kurs[]' value='Perl'>
<input type=checkbox name='kurs[]' value='JS'>
//Принимаем значения
$courses = $_POST["kurs"];
//Далее работаем с массивами...
count($courses);
Cookie
Cookies - это механизм хранения данных браузером удаленного компьютера для идентификации возвращающихся посетителей и хранения параметров веб-страниц (например, переменных).
Cookie: первый запрос страницы
GET /folder/index.php?name=Vasya HTTP/1.1
Host: www.specialist.ru
Accept: */*
Accept-Language: ru
Referrer: http://yandex.ru/yandsearch?text=Rehc
User-Agent: Mozilla 4.0 (compatible; MSIE 6.1,…)
HTTP/1.1 200 OK
Server: Microsoft IIS 6
Content-Type: text/html
Content-Length: 16345
Last-Modified: Sun, 03 Jul 2005 18:00:00 GMT
Set-Cookie: userName=Vasya
Cookie: другие запросы страниц
GET /folder/index.php HTTP/1.1
Host: www.specialist.ru
Accept: */*
Accept-Language: ru
Referrer: http://yandex.ru/yandsearch?text=Rehc
User-Agent: Mozilla 4.0 (compatible; MSIE 6.1,…)
Cookie: userName=Vasya
HTTP/1.1 200 OK
Server: Microsoft IIS 6
Content-Type: text/html
Content-Length: 16345
Last-Modified: Sun, 03 Jul 2005 18:00:00 GMT
Cookie: параметры
int setcookie (string name [, string value [,
int expire [, string path [, string domain
[, int secure]]]]])
Имя куки. Только латинские буквы, цифры, символ
подчеркивания и дефис. Все другие символы будут
преобразованы в символ подчеркивания
Значение параметра
Дата истечения срока годности
Путь, который определяет, в какой части домена
может использоваться данный файл cookie
Домен
Указание, что данные cookie должны передаваться
только через безопасное соединение HTTPS.
Cookie: создание
setcookie ("TestCookie", $value);
setcookie ("TestCookie", $value,time()+3600);
/* период действия - 1 час */
setcookie ("TestCookie", $value,time()+3600,
"/docs/", ".site.com", 1);
//Ошибка. Произведен вывод до установки cookie
<?php
echo "Hello!";
$color = "red";
setcookie("BG", $color, time()+3600);
?>
Cookie: чтение
echo $_COOKIE["TestCookie"];
//Пример создания массива из разных cookies
while(list($name,$value) = each($_COOKIE)){
// для последовательности значений
$array[]=$value;
// для ассоциативного массива
$array[$name]=$value;
}
Cookie: массивы и cookie
//Создаем массив
$array = array(
"name"=>"John",
"login"=>"root",
"pass"=>"p@ssw0rd");
// Упаковываем массив в строку
$str = serialize($array);
//Сохраняем массив в cookie
setcookie('user',$str, time() + 3600);
//Считываем строку и переводим в массив
$array = unserialize($_COOKIE['user']);
Cookie: удаление
setcookie("TestCookie")
setcookie("TestCookie", "")
setcookie ("TestCookie", "", time() - 3600);
Сессии: создание и использование
//Начало или продолжение сессии
session_start();
$_SESSION //В этом массиве всѐ и хранится
$_SESSION["user"] = "John";
echo $_SESSION["user"];
//Удаление
unset($_SESSION["user"]);
session_destroy();
session_id();// id сессии
session_name();// Имя сессии
Получение сведений о файлах
//Существует ли файл?
file_exists("test.txt")
//Узнаем размер файла
filesize("test.txt");
//Дата последнего обращения к файлу
fileatime("test.txt");//date("d M Y", $atime);
//Дата изменения файла
filemtime("test.txt");//date("d M Y", $mtime);
//Дата создания файла(Windows)
filectime("test.txt");//date("d M Y", $ctime);
Алгоритм работы с сервером баз данных
Устанавливаем соединение с сервером БД
Выбираем базу данных для работы
Посылаем запрос
При необходимости(SELECT), работаем с
выбранными данными
Закрываем соединение
Подключение необходимых расширений в php.ini
• php_pdo.dll
• php_pdo_mysql.dll
• php_mysql.dll
Функции PHP для работы с сервером MySQL
$conn = mysql_connect("host","login","pass")
mysql_close([$conn])
$conn = @mysql_connect("localhost", "root", "1234")
or die("Ошибка!");
//
//
//
mysql_close([$conn]);
Функции PHP для работы с сервером MySQL
mysql_select_db(string db, [$conn]);
mysql_errno ([$conn]);
mysql_error ([$conn]);
$conn = @mysql_connect("localhost", "root",
"1234") or die("Ошибка!");
mysql_select_db("news");
if(mysql_errno() > 0){
echo mysql_errno(). ": ". mysql_error();
}
mysql_close([$conn]);
Функции PHP для работы с сервером MySQL
$result = mysql_query(string query[, $conn])
$row = mysql_fetch_array($result[, type])
//По умолчанию
mysql_fetch_array($result, MYSQL_BOTH)
//Индексированный массив
mysql_fetch_array($result, MYSQL_NUM)//Что и
mysql_fetch_row($result)
//Ассоциативный массив
mysql_fetch_array($result, MYSQL_ASSOC)//Что и
mysql_fetch_assoc($result)
Функции PHP для работы с сервером MySQL
//Точечная выборка
mysql_result($result, int row, string field)
mysql_num_rows($result)//Количество записей
mysql_num_fields($result)//Кол-во полей
mysql_field_name($result, int field)//Имя поля
$result = mysql_query("SELECT * FROM news");
echo mysql_num_rows($result);
mysql_affected_rows([$conn])//Кол-во изменений
mysql_query("DELETE FROM news WHERE pubDate =
'2005-06-11'");
echo mysql_affected_rows();
mysql_insert_id([$conn])//id последней записи
