244.50K
Category: programmingprogramming

Мировые информационные ресурсы. Лекция 1. Язык PHP

1.

Мировые информационные ресурсы
Лекция 1. Язык PHP

2.

PHP
«Personal Home page» или «РНР Hypertext Processor»
РНР - работающий на стороне сервера
встроенный язык сценариев Web, позволяющий
быстро и эффективно строить динамические
web-приложения.
С позиций грамматики и синтаксиса РНР
напоминает язык программирования С.
Заимствованные возможности других языков:
поддержка регулярных выражений, средства
работы с массивами, объектноориентированная методология, поддержка
работы с базами данных и т.п.

3.

Одним из главных достоинств РНР является тот факт, что он
внедряется прямо в HTML-код.
Код HTML и РНР можно чередовать по мере необходимости.
<?
$site_title = "Пример скрипта РНР";
$bg_color = "yellow";
$user_name = "Гость";
?>
<html><head>
<title><? print $site_title; ?></title>
</head>
<body bgcolor="<? print $bgcolor; ?>" text="navy">
<? print "Сегодняшняя дата:<b> date(F d ,Y) </b><br>"; ?>
<? print "<h3>Добро пожаловать, уважаемый <span
style=/"color:red/">$user_name</span>! </h3> "; ?>
</body> </html>

4.

5.

Отделение кода РНР
от других элементов страницы
стандартные теги;
короткие теги;
теги script;
теги в стиле ASP.

6.

Стандартные теги
За открывающей конструкцией <? следуют символы
php, однозначно определяющие тип дальнейшего
кода.
Весь текст, расположенный до закрывающего тега ?>,
интерпретируется как код РНР.
Пример:
<?php print "Любой текст"; ?>
Команда print внутри экранирующих
последовательностей РНР (<?...?>), представляет
собой законченную программу.

7.

Короткие теги
Короткие теги обеспечивают наиболее компактную
запись для перехода в РНР:
<? print "Любой текст"; ?>
По умолчанию короткие теги не используются, их
нужно специально активизировать:
указать ключ -enable-short-tags при компиляции РНР;
либо включить параметр short_open_tag в файл
php.ini.

8.

Теги script
Некоторые текстовые редакторы ошибочно
принимают код РНР за код HTML (то есть визуально
отображаемый текст), что затрудняет работу над webстраницей.
Проблема решается использованием тегов script:
<script language="php">
<?php print "Любой текст."; ?>
</script>

9.

Теги в стиле ASP (Active Server Page)
похожи на короткие теги, но вместо вопросительного
знака используется знак процента (%):
<%php print "Welcome to the world of PHP!"; %>
Преимущество: во внедренный код РНР не
обязательно включать команду print, вместо этого
можно использовать конструкцию <%= ... %>
Пример использования на странице:
<%
$var = "123"; # Присвоить значение переменной $var
%>
<p>Значение переменной var: <%=$var; %> </p>

10.

Внедрение HTML в код РНР
Код HTML интегрируется прямо в команды РНР.
Пример: вывод кода HTML средствами РНР
<html><head>
<title>Пример интеграции PHP/HTML</title>
</head><body>
<? print "<h3>Вывод заголовка</h3>"; ?>
</body>
</html>
В код РНР включаются теги заголовка третьего уровня
(<h3>...</h3>). В итоговом документе эти теги ничем
не отличаются от обычного кода HTML.

11.

Внедрение HTML в код РНР
Пример: вывод текущей даты в заголовке окна
<title>Примеры на PHP | <? print (date("F d, Y")); ?></title>
Отформатированная дата вставляется в заголовок окна.
Функция date() форматирует дату.
Пример:
echo date("Сегодня d.m.Y"); //Сегодня 31.01.2002
F - месяц, текстовый, длинный; т.е. "January"
d - день месяца, 2 цифры (на первом месте ноль) (от 01 до 31)
Y - год, цифровой, 4 цифры (1999)
m - месяц, две цифры с нулями (от 01 до 12)
n - месяц, одна-две цифры без нулей (от 1 до 12)
h - час, 12-часовой формат (от 01 до 12)
H - час, 24-часовой формат (от 00 до 23)
i - минуты (от 00 до 59)
s - секунды (от 0 до 59)
l (строчная "L") - день недели, текстовый, длинный; т.е. "Friday"

12.

Внедрение HTML в код РНР
Пример:
<html><head>
<title>Пример PHP, <? print (date("F d, Y")); ?></title>
</head>
<? $big_font = "h3"; ?>
<body>
<? print "<$big_font>Пример PHP</$big_font>"; ?>
</body></html>
РНР позволяет управлять параметрами конструкций
HTML — для этого соответствующая характеристика
тега присваивается переменной, вставляемой в
файл.

13.

Внедрение HTML в код РНР
Пример:
<?php
$strarray=explode(":","Понедельник:Вторник:Среда:Чет
верг:Пятница:Суббота:Воскресенье"); ?>
<select name="dayofweek" size="1">
<?php for($i=0;$i<7;$i++) { ?>
<option> <?php echo($strarray[$i]); ?> </option>
<?php } ?>
</select>

14.

Комментарии в коде РНР
Однострочные комментарии
- обычно используются для коротких пояснений или
примечаний, относящихся к локальному коду.
Служебные символы:
1. двойной символ «косая черта» (//),
2. символа фунта (#)
Пример:
<?
// файл: test.php
// дата: 2 февраля 2008 г.
print "Пример комментариев";
?>

15.

Комментарии в коде РНР
Однострочные комментарии
<?
// Выбрать цвет роз
$rose_color = "red";
# Выбрать цвет фиалок
$violet_color = "blue";
print "Цвет розы - $rose_color, цвет фиалки $violet_color";
?>

16.

Комментарии в коде РНР
Многострочные комментарии
- используются при оформлении алгоритмов на
псевдокоде и в более подробных объяснениях.
- начало и конец обозначаются символами /* и */.
<?
/*
Сценарий: test.php
Назначение : пример использования многострочных
комментариев
Дата: 22 февраля 2008 г.
*/
print "Пример комментариев";

17.

Переменные и типы данных
В РНР поддерживаются шесть основных типов
данных:
целые числа;
вещественные числа;
строки;
логические величины;
массивы;
объекты;

18.

Целые числа
Целое число не имеет дробной части и
представляется последовательностью из одной или
нескольких цифр. Примеры целых чисел:
5
591
52
Восьмеричная и шестнадцатеричная запись
Восьмеричные числа начинаются с цифры 0, после
которой следует серия цифр от 0 до 7. Пример: 0422
Шестнадцатеричные целые числа имеют префикс 0х
или 0Х и могут состоять из цифр от 0 до 9 и букв от а
(А) до f (F). Примеры: 0x3FF, 0x22abc

19.

Вещественные числа
(с плавающей точкой)
поддерживаются два вещественных формата:
стандартная и научная (экспоненциальная) запись.
1. Стандартная запись, примеры:
12.45
98.6
2. Научная запись, примеры:
Зе8
5.9736е24

20.

Строковые значения
Строкой (string) называется последовательность
символов, которая рассматривается как единое
целое, но при этом обеспечивает доступ к отдельным
символам.
Примеры строк: someword, 49ers, abc, &%/$#
В РНР не поддерживается символьный тип данных.
Строковый тип может рассматриваться как единое
представление для последовательностей, состоящих
из одного или нескольких символов.

21.

Строковое присваивание
Имена переменных в строках, заключенных в кавычки (“ ”),
заменяются соответствующими значениями, а также
распознаются все существующие служебные символы.
Строки в апострофах (‘ ‘) интерпретируются буквально,
даже если в них присутствуют имена переменных.
Распознаются только служебные символы «\\» и «\».
Пример:
$var = "string";
$sentence = "Строка включает переменную $var";
// Вывод: Строка включает переменную string
$sentence = ‘Строка включает переменную $var’
// Вывод: Строка включает переменную $var;

22.

Служебные символы в строках
Последовательность Смысл
\n
Новая строка
\r
Возврат курсора
\t
Горизонтальная табуляция
\\
Обратная косая черта
\$
Знак доллара
\"
Кавычка
\[0-7]{1,3}
Восьмеричная запись числа (в
виде регулярного выражения)
\x[0-9A-Fa-f]{l,2}
Шестнадцатиричная запись числа
(в виде регулярного выражения)

23.

Синтаксис встроенной документации
Строка начинается с символов <<<, за которыми следует
некоторый идентификатор, затем строка, присваиваемая
переменной.
Конструкция заканчивается вторым экземпляром того же
идентификатора.
Выбранный идентификатор не должен присутствовать в
присваиваемой строке. Более того, первый символ
завершающего идентификатора должен находиться в
первом столбце строки, завершающей конструкцию.

24.

Синтаксис встроенной документации
Пример:
$paragraph = <<<DELIM
Эта строка
Будет интерпретирована точно так же
Как описано
В назначении переменной
DELIM;

25.

Обращение к отдельным символам
строк
К отдельным символам строки можно обращаться как
к элементам массива с последовательной
нумерацией.
Пример:
$var = "04efgh";
$letter = $var[4]; # переменной $letter будет присвоено
значение g.

26.

Идентификаторы
Общий термин идентификатор применяется к
переменным, функциям и другим объектам,
определяемым пользователем.
Идентификаторы РНР должны удовлетворять
нескольким условиям:
Идентификатор состоит из одного или нескольких символов и
начинается с буквы или символа подчеркивания.
Идентификатор может содержать только буквы, цифры, символы
подчеркивания и другие ASCII-символы с кодами от 127 до 255.
В идентификаторах учитывается регистр символов.
Следовательно, переменная с именем $recipe отличается от
переменных с именами $Recipe, $rEciPe и $recipE.
Длина идентификаторов не ограничивается.
Идентификатор не может совпадать с каким-либо из
стандартных ключевых слов РНР.

27.

Идентификаторы
Примеры:
Допустимые
Недопустимые
идентификаторы
идентификаторы
my_function
This&that
Size
!counter
_someword
4ward

28.

Объявление переменных
Имена переменных всегда начинаются со знака доллара, $.
Имена переменных должны соответствовать тем же
условиям, что и идентификаторы.
Переменные в РНР, как и в языке Perl, не требуют
специального объявления. Вместо этого переменная
объявляется при первом ее использовании в программе.
Тип переменной косвенно определяется по типу
хранящихся в ней данных.
Пример:
$sentence = "This is a sentence."; // $sentence
интерпретируется
как строка
$price = 42.99: // $price интерпретируется как
вещественное число

29.

Переключение типов
Тип переменных РНР может изменяться без использования
механизма явного преобразования.
Примеры:
1. Суммирование строки и целого числа - результат зависит
от содержимого строки.
$variable1 = 1;
$variable2 = "1";
$variable3 = $variable1 + $variable2;
// $variable3 присваивается 4.

30.

Переключение типов
Примеры:
2. Суммирование целого числа с вещественным - целое
число преобразуется к вещественному типу, чтобы избежать
потери точности:
$variable1 = 3;
$variable2 = 5.4;
$variable3 = $variable1 + $variable2;
// $variable1 интерпретируется как вещественное число.
// и $variable3 присваивается 8.4.

31.

Переключение типов
Примеры:
3. Суммирование целого числа и строки, содержащей целое
число, но не являющейся строковым представлением:
$variable1 = 5;
$variable2 = "101 dalmatians";
$variable3 = $variable1 + $variable2;
// $variable3 присваивается 106
$variable2 = "There are 101 dalmatians";
$variable3 = $variable1 + $variable2;
// $variable3 присваивается 5

32.

Преобразование типов
явное приведение переменной к типу, отличному от того, который
изначально предназначался для нее
Изменение типа может быть как временным, так и постоянным.
Чтобы временно привести переменную к другому типу, достаточно
воспользоваться оператором преобразования типа — указать
нужный тип перед именем переменной в круглых скобках.
Операторы преобразования типа переменных
Оператор преобразования типа
Новый тип
(int) или (integer)
Целое число
(real), (double) или (float)
Вещественное число
(string)
Строка
(array)
Массив
(object)
Объект

33.

Преобразование типов
Пример:
$variable1= 13; // $variable1 присваивается целое число 13
$variable2 = (double) $variable1; // $variable2 присваивается 13.0
Пример:
$variable1 = 4.0;
$variable2 = 5;
$variable3 = (int) $variable1 + $variable2; // $variable3 = 9
Преобразование переменной в элемент массива:
$variable1 = 1114;
$array1 = (array) $varable1;
print $array1[0]; // Выводится значение 1114

34.

Присваивание
1. Присваивание по значению
самый распространенный способ присваивания, при котором
значение просто заносится в область памяти, представленную
именем переменной.
Примеры:
$vehicle = "car";
$amount =10.23;
Присваивание в результате выполнения команды return в
функциях:
function simple () {
return 5;
}
$return_value = simple();

35.

Присваивание
2. Присваивание по ссылке
присваивание переменной ссылки на область памяти,
занимаемую другой переменной.
перед именем переменной-источника указывается символ &
(амперсанд)
Пример:
$var1 = "a";
$var2 = &$var1;
$var2 = "c";
print "$var2<br>"; // Выводится строка “c”
print $var1; // Снова выводится строка “c”
// любые изменения $var2 приводят к автоматической
модификации
$var1.

36.

Переменные в переменных
переменные, содержимое которых может динамически
интерпретироваться как имя другой переменной.
Пример:
$var1 = "somevalue"; # строку "somevalue" можно
интерпретировать как имя
переменной —
для этого в команде
присваивания перед
именем исходной
переменной ставится
второй знак $:
$$var1 = "& othervalue";# переменной с именем "somevalue"
присваивается строка "& othervalue"
print $var1 $somevalue;
print $var1 $($var1); # в обоих случаях будет выведена
строка
"somevalue & othervalue".

37.

Стандартные переменные
1. $GLOBALS[ ] – специальный массив, в котором имена
переменных выступают в качестве индексов.
Пример:
while (list($var,$value) = each($GLOBALS)) :
echo "<BR>$var => $value";
Endwhile;
Результат:
GLOBALS =>
HTTP_GET_VARS => Array
HTTP_COOKIE_VARS => Array
HOSTSIZE => 1000
HOSTNAME => server.domain.ru
...

38.

Стандартные переменные
(Продолжение примера)
...
HTTP_USER_AGENT => Mozilla/4.0 (compatible; MSIE 5.0: Windows 98;
REMOTE_ADDR => 127.0.0.1
REMOTE_PORT => 3207
SCRIPT_FILENAME => /usr/local/environment_vars.php
SERVER_ADDR => 127.0.0.1
...
SERVER_PROTOCOL => HTTP/1.1
REQUEST_METHOD => GET
QUERY_STRING =>
Вывод конкретной переменной среды:
print "Your IP address is: $REMOTE_ADDR";
print "Your browser is: $HTTP_USER_AGENT";

39.

Стандартные переменные
2. Переменные среды $_ENV[ ]
3. Переменные сервера $_SERVER[ ]
4. Переменные, полученные методом GET: $_GET[ ]
5. Переменные, полученные методом POST: $_POST[ ]
6. Cookies, полученные от браузера: $_COOKIE[ ]

40.

Действия над переменными
1. Функция isset()
Определяет, существует ли указанная переменная.
Синтаксис :
isset($var);
Возвращает true, если var существует; false в случае, если
переменная не была инициализирована или содержит NULL.
Фактически функция проверяет, имеет ли переменная значение,
идентичное null, то есть: (var===null).
If (isset($var))
{
print 'Переменная с именем $var существует.';
}

41.

Действия над переменными
2. Функция unset()
Удаляет указанную переменную.
Синтаксис :
unset($var);
unset() уничтожает указанную переменную и возвращает true.
Пример :
unset( $foo );
unset( $bar["quux"] );
Если переменная была удалена функцией unset(), она больше
не будет определяться функцией isset().
$a = "test";
echo isset($a); // вывод на экран: true
unset($a);
echo isset($a); // вывод на экран: false

42.

Действия над переменными
3. Функция empty()
Определяет, есть ли у переменной какое либо значение.
Синтаксис :
empty($var);
Возвращает false, если var существует и имеет не пустое или не
нулевое значение; true в обратном случае.
Фактически функция проверяет, имеет ли переменнная
значение, которое может быть приравнено к 0, то есть: (var==0)
$var=0;
if(empty($var)) {
echo "$var - либо 0, либо не имеет значения";
if(!isset($var)) {
echo "$var не имеет значения";
};
};

43.

Константы
именованная величина, которая не изменяется в процессе
выполнения программы;
определяются функцией define( );
после того как константа будет определена, изменить (или
переопределить) ее в этой программе невозможно;
в именах констант не указывается знак доллара.
Пример:
define("'PI", "3.141592"); # определение числа «Пи» в сценарии РНР
print "The value of pi is". PI."<br>";
$pi2 = 2 * PI:
print "Pi doubled equals $pi2.";
Результат:
The value of pi is 3.141592.
Pi doubled equals 6.283184.
English     Русский Rules