Программирование на стороне сервера
WEB-сервер
Дополнительные функции WEB-сервера
Программное обеспечение
Технология распределенных серверов
Технология распределенных серверов
Стандартное WEB-приложение
Локальный WEB-сервер. WAMP-комплексы
WAMP-комплексы
Серверный язык программирования PHP
Программирование на PHP. История развития.
Программирование на PHP. История развития.
PHP 7
Преимущества PHP
Файл PHP.ini
Hello, World!
Синтаксис и грамматика.
Разделение инструкций. Типы переменных.
Типы переменных.
Инициализация массивов.
Инициализация объектов.
Область переменной.
Область переменной.
Глобальные переменные
Статическая переменная
Статическая переменная
Изменяемые переменные.
Переменные вне PHP.
Переменные вне PHP.
Изменение типа.
Изменение типа.
Определение типов переменных.
Приведение типа.
Манипуляции с массивом.
Манипуляции с массивом.
1.16M
Категория: ПрограммированиеПрограммирование

Программирование на стороне сервера

1. Программирование на стороне сервера

2. WEB-сервер

Веб-сервер — сервер,
принимающий HTTP-запросы от
клиентов, обычно веббраузеров, и выдающий им
HTTP-ответы, как правило,
вместе с HTML-страницей,
изображением, файлом,
медиа-потоком или другими
данными.
Веб-сервером называют как
программное обеспечение,
выполняющее функции вебсервера, так и непосредственно
компьютер, на котором это
программное обеспечение

3. Дополнительные функции WEB-сервера

Дополнительные функции WEBсервера
Веб-серверы могут иметь различные
дополнительные функции, например:
•автоматизация работы веб-страниц;
•ведение журнала обращений пользователей к
ресурсам;
•аутентификация и авторизация пользователей;
•поддержка динамически генерируемых страниц;
•поддержка HTTPS для защищённых соединений
с клиентами.
Часто на компьютере вместе с веб-сервером
устанавливается также и почтовый сервер.

4. Программное обеспечение

В настоящий момент наиболее распространённым веб-сервером,
является Apache — свободный веб-сервер, наиболее часто используемый в
UNIX-подобных операционных системах;
Некоторые другие известные веб-серверы:
•IIS от компании Microsoft, распространяемый с ОС семейства Windows
•nginx — свободный веб-сервер, пользующийся большой популярностью
на крупных сайтах

5. Технология распределенных серверов

6. Технология распределенных серверов

7. Стандартное WEB-приложение

8. Локальный WEB-сервер. WAMP-комплексы

Локальный WEB-сервер. WAMPкомплексы
WAMP — акроним от
«Windows, Apache, MySQL и
PHP». Данным сокращением
описывается комплектация
пакетов программ, под
соответствующую ОС,
обозначаемую первой
буквой. Данные пакеты в
основном используются для
веб-разработки.
Системы WAMP, MAMP и LAMP поставляются
в форме пакетов, связывающих упакованные
программы таким образом, чтобы их не нужно
было устанавливать и настраивать по
отдельности.

9. WAMP-комплексы


Open Server (рус.)
Денвер (рус.)
XAMPP
EasyPHP
WampServer
Bitnami

10. Серверный язык программирования PHP

11. Программирование на PHP. История развития.

1997 год - два
программиста Энди
Гутманс и Зив Сураски
взяли за основу идею
Расмуса и переписали
PHP с нуля. Название
"Personal Home Page"
было изменено на
Hypertext Preprocessor

12. Программирование на PHP. История развития.

• 2000 год – вышла 4-я версия PHP, ставшая стандартом для
Веб-разработки.
• 2004 год – вышла версия PHP5.
• PHP – это гибкий и легкий язык web-программирования,
обладающий широкими возможностями и неоспоримыми
преимуществами.
Изменения в PHP5 включают обновление ядра Zend (Zend Engine 2), что
существенно увеличило эффективность интерпретатора. Введена поддержка
языка разметки XML. Полностью переработаны функции ООП, которые стали
во многом схожи с моделью, используемой в Java. В частности, введён
деструктор, открытые, закрытые и защищённые члены и методы,
окончательные члены и методы, интерфейсы и клонирование объектов.
Нововведения, однако, были сделаны с расчётом сохранить наибольшую
совместимость с кодом на предыдущих версиях языка. На данный момент
последней стабильной веткой является PHP 5.6, которая содержит ряд
изменений и дополнений

13. PHP 7

В 2015 году было объявлено о выходе PHP версии 7.0.0.
Новая версия основывается на экспериментальной ветви PHP, которая
изначально называлась phpng (PHP Next Generation — следующее
поколение), и разрабатывалась с упором на увеличение
производительности и уменьшение потребления памяти.
В новой версии добавлена возможность указывать тип возвращаемых
из функции данных, добавлен контроль передаваемых типов для
данных, а также новые операторы.
Однако в седьмой версии была убрана устаревшая
функциональность, что привело к некоторым проблемам с обратной
совместимостью, затруднив перевод старых приложений на новую
версию.

14.

Сегодня РНР — это мощный
кроссплатформенный набор средств, который
располагается на сервере и предназначен для
обработки специального кода, встраиваемого
в HTML-страницу. Благодаря этому,
появляется возможность легко создавать
динамические сайты. Файлы, созданные таким
образом, хранятся и обрабатываются на
сервере, и когда посетитель запрашивает
документ с РНР, скрипт обрабатывается не
браузером посетителя, как, например, Java
Script, а сервером, и посетителю передаются
уже только результаты работы.

15.

РНР (Hypertext Preprocessor)— это серверный язык
создания сценариев, разработанный специально для
Web. В HTML-страницу можно внедрить код РНР,
который будет выполняться при каждом ее
посещении. Код РНР интерпретируется Web-сервером
и генерирует HTML или иной вывод, наблюдаемый
посетителем страницы.

16. Преимущества PHP

РНР обладает множеством преимуществ:
• Высокая производительность
• Наличие интерфейсов ко многим различным
системам баз данных
• Встроенные библиотеки для выполнения
многих общих задач, связанных с Web
• Низкая стоимость
• Простота изучения и использования
• Переместимость
• Доступность исходного кода

17.

18. Файл PHP.ini

Конфигурационный файл php.ini содержит в
себе настройки PHP, которые действуют на
сервере.
<?php
phpinfo();
?>

19. Hello, World!

<html>
<head>
<title>Пример</title>
</head>
<body>
<?php
echo “Hello, World!";
?>
</body>
</html>

20. Синтаксис и грамматика.

• Синтаксис
PHP
заимствован
непосредственно из C. Java и Perl также
повлияли на синтаксис данного языка.
• Cпособ выхода из HTML и перехода в
"режим PHP кода":
<?php … ?>

21. Разделение инструкций. Типы переменных.

• Инструкции разделяются также как в C - точкой
с запятой. Закрывающий тэг (?>) тоже
подразумевает конец утверждения, поэтому
следующие записи эквивалентны:
– <php echo "Это тест"; ?>
– <php echo "Это тест" ?>
• PHP поддерживает переменные типов:






integer - целое
double - число с дробной частью
string - строковая переменная
array - массив
object - объектная переменная
pdfdoc - PDF-документ (только при наличии
поддержки PDF)

22. Типы переменных.

• Тип переменной обычно не устанавливается
программистом;
вместо
этого,
он
определяется в зависимости от контекста, в
котором она используется. Чтобы указать тип
переменной непосредственно, используйте
инструкцию cast либо функцию settype(), но
учтите, что переменная может вести себя поразному, в зависимости от того, какой тип
определен для нее в данное время.
• Инициализация
переменной.
Для
инициализации переменной в PHP вы просто
присваиваете ей значение. Для массивов и
объектных переменных, однако, может
использоваться несколько иной механизм.

23. Инициализация массивов.

• Массив может инициализироваться одним из
двух
способов:
последовательным
присвоением значений, или посредством
конструкции array().
• При последовательном добавлении значений
в массив вы просто записываете значения
элементов массива, используя пустой индекс.
Каждое
последующее
значение
будет
добавляться в качестве последнего элемента
массива.
$names[] = "Jill";
$names[] = "Jack";
// $names[0] = "Jill"
// $names[1] = "Jack"
• Как в C и Perl, элементы массива нумеруются,
начиная с 0, а не с 1!

24. Инициализация объектов.

• Для инициализации объектной переменной
используйте
новое
предписание
для
сопоставления данного объекта объектной
переменной.
class a
{
function do_a ()
{ echo «Исполняем класс а» }
}
$bar = new a;
$bar -> do_a ();

25. Область переменной.

• Областью переменной является контекст, внутри
которого она определена. Любая переменная,
определенная внутри функции, по умолчанию
ограничена локальной областью функции. Например:
$a = 1; // глобальная область
Function Test ()
{
echo $a;
// ссылка на переменную локальной области
}
Test ();
• Этот скрипт ничего не выдаст на выходе, поскольку
инструкция echo относится к локальной версии
переменной $a, значение которой присваивается не
внутри этой области.

26. Область переменной.

• Здесь имеется отличие от языка C, в том, что
глобальные переменные в C автоматически
действуют и внутри функций, если только не
переписываются локальными определениями.
• В PHP глобальные переменные должны быть
продекларированы глобально внутри функции,
если предполагается их использование в
данной функции. Например:
$a = 1; $b = 2;
Function Sum () {
global $a, $b;
$b = $a + $b; }
Sum (); echo $b;
• Этот скрипт выдаст значение "3".

27. Глобальные переменные

• Поскольку $a и $b декларируются глобально внутри
функции, ссылки на них трактуются как ссылки на их
глобальные версии.
• Вторым способом доступа к глобальным переменным
является использование определяемого PHP массива
$GLOBALS:
$a = 1; $b = 2;
Function Sum ()
{
$GLOBALS["b"]=$GLOBALS["a"]+$GLOBALS["b"];
}
Sum (); echo $b;
• Массив $GLOBALS является ассоциативным, в котором имя
глобальной переменной является ключом, а значение этой
переменной является значением элемента массива.

28. Статическая переменная

• Статическая переменная существует только в
локальной области функции, но она не теряет
своего значения, когда программа, при
исполнении, покидает эту область:
Function Test ()
{
static $a = 0;
echo $a;
$a++;
}
• При вызове функции Test() она будет выводить
значение $a и увеличивать его.

29. Статическая переменная

• Статические переменные также весьма
существенны, когда функции вызываются
рекурсивно. Рекурсивные функции - это те,
которые вызывают сами себя. Составлять
рекурсивную функцию нужно внимательно, т.к.
при неправильном написании можно сделать
рекурсию
неопределенной.
Следующая
простая функция рекурсивно считает до 10:
Function Test () {
static $count = 0;
$count++;
echo $count;
if ($count < 10) { Test (); }
$count--;
}

30. Изменяемые переменные.

• Иногда бывает удобно давать переменным
изменяемые имена. Такие имена могут изменяться
динамически. Изменяемая переменная берет некое
значение и обрабатывает его как имя переменной. В
примере значение hello может быть использовано
как имя переменной, посредством применения двух
записанных подряд знаков доллара, т.е.:
$a = "hello";
$$a = "world";
• Две переменных определены и сохранены в
символьном дереве PHP: $a с содержимым "hello" и
$hello с содержимым "world".

31. Переменные вне PHP.

• Когда
программой-обработчиком
формы
является PHP-скрипт, переменные этой формы
автоматически доступны для данного скрипта
PHP:
<form action="foo.php" method="post">
Name:<input type="text" name="name">
<br><input type="submit">
</form>
• При активизации формы PHP создаст переменную
$name, значением которой будет то содержимое,
которое было введено в поле данной формы.

32. Переменные вне PHP.

• PHP также воспринимает массивы в контексте
переменных формы, но только одномерные:
<form action="array.php" method="post">
Name:<input type="text”
name="personal[name]"><br>
Email:<input type="text”
name="personal[email]"><br>
City: <br>
<select multiple name=“city[]”>
<option value="warthog">Oryol
<option value="guinness">Moscow
</select>
<input type="submit">
</form>

33. Изменение типа.

• В PHP тип переменной определяется по
контексту, в котором она используется. Если
присвоить строковое значение переменной
var, var становится строкой. Если затем
присвоить переменной var значение целого
числа, то она станет целым.
• Примером автоматического преобразования
типа в PHP может служить оператор сложения
'+'. Если какой-либо из операндов является
числом типа double, то все операнды
оцениваются как double и результат будет
иметь тип double. Иначе, эти операнды будут
интерпретированы как integer и результат
будет integer. Отметим, что при этом НЕ
меняются типы операндов, меняется их
оценка.

34. Изменение типа.

• Примеры:
$foo = "0"; // $foo - строка (ASCII 48)
$foo++; // $foo - строка "1" (ASCII 49)
$foo += 1;
// $foo является целым (2)
$foo = $foo + 1.3;//$foo - double (3.3)
$foo = 5 + "10 Little Piggies";
// $foo является целым (15)
$foo = 5 + "10 Small Pigs";
// $foo является целым (15)
• Если вы желаете изменить тип переменной,
используйте settype().

35. Определение типов переменных.

• Поскольку
PHP
определяет
типы
переменных и преобразует их (в общем)
по мере необходимости, не всегда
очевидно какой тип данная переменная
имеет в какой-то отдельный момент.
Поэтому
PHP
включает
несколько
функций, которые позволяют определить
текущий тип переменной. Это функции
gettype(), is_long(), is_double(), is_string(),
is_array(), и is_object().

36. Приведение типа.

• Приведение типа работает в PHP во многом так же как в C:
название требуемого типа записывается в круглых скобках
перед переменной, которая должна быть приведена к
данному типу.
$foo = 10;
// $foo is an integer
$bar = (double) $foo;// $bar - double
• Допускается следующее приведение типов:
– (int), (integer) - приведение к целому
– (real), (double), (float) - приведение к типу double
– (string) - приведение к строке
– (array) - приведение к массиву
– (object) - приведение к объектной переменной.

37. Манипуляции с массивом.

• PHP поддерживает как скалярные, так и
ассоциативные массивы. Вы можете создать
массив, используя функции list() или array(), или
можно явно задать значение каждого элемента
массива.
$a[0] = "abc";
$a[1] = "def";
$b["foo"] = 13;
• Можно также создать массив просто добавляя в
него значения.
$a[] = "hello"; // $a[2] == "hello"
$a[] = "world"; // $a[3] == "world"

38. Манипуляции с массивом.

• Массив может сортироваться функциями
asort(), arsort(), ksort(), rsort(), sort(),
uasort(), usort(), и uksort() в зависимости от
типа желаемой сортировки. Подсчет
количества
элементов
массива
осуществляется
функцией
count().
Перемещаться по массиву позволяют
функции next() и prev(). Другим типовым
способом перемещения по массиву
является использование функции each()
или конструкции foreach().

39.

Создание массивов в PHP
Массив - это набор данных, которые объединены
под одним именем. Массив состоит из нескольких
элементов, которые имеют свой определенный
индекс.
Массивы создаются при помощи
оператора присвоения, также, как и переменная.
Имена массивов начинаются со знака $, после
которого следует произвольный идентификатор,
далее идут квадратные скобки: $arr[0] = "php";
Данная конструкция создает массив и
присваивает его элементу с индексом 0 значение
"php", после чего мы можем обращаться к этому
элементу как к обычной переменной: echo $arr[0].
В результате мы увидим слово php.
Также, мы можем добавить еще элементы к
массиву:
<?php $arr[1] = "html"; $arr[2] = "css"; ?>

40.

В качестве индекса элементов массива мы можем
использовать не только числа:
<?php
$arr["Kiev"] = 3000000;
$arr["Paris"] = 5000000;
$arr["LA"] = 15000000;
?>
В качестве значений индексов элементов и самих
элементов мы можем использовать одинаковые
типы данных одновременно!
Также существует сокращенная запись для
индексирования:
<?php
$arr[] = 3000000; $arr[] = 5000000; $arr[] =
15000000;
?>
В этом случае первый элемент (3000000) получит
индекс 0! Нужно иметь это ввиду.

41.

Для создания массива можно использовать
функцию array:
<?php
$arr = array("php", "html", "css");
?>
В этом случае первый элемент получит индекс 0. Если
нужно присвоить какой-то другой номер, то можно
воспользоваться конструкцией =>:
<?php
$arr = array(1 => "php", "html", "css"); ?>
Теперь элемент под номером 1 это "php", а не "html"!
Также, можно создать массив со строковым индексом:
<?php
$arr = array("first" => "php", "second" => "html", "third"
=> "css"); ?>
Начиная с версии PHP 5.4, массивы можно создать
через квадратные скобки:
<?php $arr = ["php", "laravel", "yii", "zend", "cakephp"]; ?

42.

Модификация элементов массива
в PHP
Есть массив:
<?php
$arr[0] = "PHP";
$arr[1] = "HTML";
$arr[2] = "CSS";
?>
Для того, чтобы изменить значение элемента
используем оператор присвоения:
<?php
$arr[1] = "JAVASCRIPT";
?>

43.

Для того, чтобы добавить новый элемент в конец
массива использует конструкцию:
<?php
$arr[] = "JQUERY";
?>
Для того, чтобы вывести на экран массив можно
использовать foreach:
<?php
$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS";
$arr[1] = "JAVASCRIPT"; $arr[] = "JQUERY";
foreach($arr as $key => $value) { // при переборе:
$key - индекс элемента массива, $value значение элемента массива
echo $value.'<br/>'; } ?>
Отображение в браузере:
PHP
JAVASCRIPT
CSS
JQUERY

44.

Удаление элементов массива в PHP
Если нам нужно удалить один из элементов
массива, то для этого мы должны использовать
функцию unset
<?php
$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS";
unset($arr[1]);
foreach($arr as $key => $value)
{ echo $value.'<br/>'; }
?>

45.

Перебор элементов массива в PHP
Кроме использования цикла for для вывода
всех элементов массива на экран мы
можем использовать функцию print_r,
которая выведет все элементы массива
вместе с их индексами.
<?php
$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] =
"CSS"; print_r($arr);
?>
Отображение в браузере:
Array ( [0] => PHP [1] => HTML [2] => CSS )

46.

Также в PHP присутствует специальный цикл для
обработки массивов - цикл foreach
<?php
$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS";
foreach($arr as $value)
{
echo $value, "<br>";
}
?>
Отображение в браузере:
PHP
HTML
CSS

47.

Для вывода индекса элемента нужно
использовать второй вариант синтаксиса
цикла foreach
<?php
$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS";
foreach($arr as $key => $value)
{
// $key - индекс эл.массива, $value - значение
эл.массива echo "[{$key}] => {$value} <br/>";
}
?>
Отображение в браузере:
[0] => PHP
[1] => HTML
[2] => CSS

48.

Сортировка массивов в PHP
Очень часто нужно отсортировать массив по индексу его
элементов, по алфавиту его элементов, по возрастанию,
по убыванию и т. д. В PHP для этого существуют
Функция - sort, которая сортирует массив по возрастанию
функции.
значений его элементов, при этом изменяя индекс после
сортировки:
<?php
$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS";
sort($arr);
print_r($arr);
?>
Отображение в браузере:
Array ( [0] => CSS [1] => HTML
[2] => PHP )

49.

Функция - rsort, которая сортирует массив по
убыванию значений его элементов, при этом
изменяя индекс после сортировки:
<?php
$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS";
rsort($arr);
print_r($arr);
?>
Отображение в браузере:
Array ( [0] => PHP [1] => HTML [2] => CSS )

50.

Третья функция - ksort, которая сортирует массив по
ключам, сохраняя отношения между ключами и
значениями:
<?php
$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS";
ksort($arr);
print_r($arr); ?>
Отображение в браузере:
Array ( [0] => PHP [1] => HTML [2] => CSS )

51.

Функция - krsort, которая сортирует массив по
убыванию индексов его элементов:
<?php
$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] =
"CSS";
krsort($arr);
print_r($arr);
?>
Отображение в браузере:
Array ( [2] => CSS [1] => HTML
[0] => PHP )

52.

Навигация по массива дает возможно узнать
текущий , следующий, предыдущий, последний
элемента массива.
Навигация по массивам в PHP
Текущий элемент массива определяет
функция current:
<?php echo "Now is: ", current($arr), "<br>"; ?>
Следующий элемент массива определяет
функция next:
<?php echo "Next is: ", next($arr), "<br>"; ?>
Предыдущий элемент массива определяет
функция prev:
<?php echo "Previously is: ", prev($arr), "<br>"; ?>
Последний элемент массива определяет
функция end:
<?php echo "The end is: ", end($arr), "<br>"; ?>
Для определения первого (возврата указателя)

53.

Пример навигации по массивам:
<?php $arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] =
"CSS";
echo "Тек_элемент: ", current($arr), "<br>";
echo "След_элемент: ", next($arr), "<br>";
echo "Предыдущ_элемент: ", prev($arr), "<br>";
echo "Последний_элемент: ", end($arr), "<br>";
echo "Первый_элемент: ", reset($arr), "<br>";
?>
Отображение в браузере:
Тек_элемент: PHP
След_элемент: HTML
Предыдущ_элемент: PHP
Последний_элемент: CSS
Первый_элемент: PHP

54.

Преобразование строк в массивы и
наоборот
PHP умеет преобразовывать данные из строки в
массив и наоборот, для этого в PHP есть
функция implode и explode.
implode - формирует строку из массива.
explode - формирует массив из строки.
Использование функции implode:
<?php
$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS";
$string = implode(", ", $arr);
echo $string;
?>
Отображение в браузере:
PHP, HTML, CSS

55.

Использование функции explode:
<?php
$string = "PHP, HTML, CSS";
$arr = explode(", ", $string);
print_r($arr);
?>
Отображение в браузере:
Array ( [0] => PHP [1] => HTML [2] => CSS )
English     Русский Правила