Инфоурок Доп. образование Другие методич. материалыМетодическое пособие "Основы языка PHP"

Методическое пособие "Основы языка PHP"

Скачать материал

Справочно-лабораторный материал по теме «PHP»

Оглавление

Основные отличия динамического сайта (php) от статического (html) 2

Лабораторная работа №1. 4

Лабораторная работа №2. 6

Лабораторная работа №3. 9

Лабораторная работа №4. 12

Лабораторная работа №5. 14

Лабораторная работа №6. 17

Лабораторная работа №7. 25

Лабораторная работа №8. 30

Лабораторная работа №8. 37

Лабораторная работа №9. 50

Лабораторная работа №10. 57

Лабораторная работа №11. 63

Лабораторная работа №12. 73

Приложение 1. 75

Приложение 2. 81

 

 


Основные отличия динамического сайта (php) от статического (html)

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

Объясняется это очень просто! Как только такой сайт начинает разрастаться, наполняться информацией, это приводит к тому, что появляется большое количество статических html-страниц. И чем больше будет таких страниц, тем сложнее будет управлять этим сайтом!

Ну вот только представьте себе, сколько страниц Вам придется изменить, чтобы поменять какой-нибудь пункт навигации, или изменить "шапку" сайта! Довольно таки трудоемкий процесс! Не так ли?!

В связи с этим вебмастера начинают использовать систему управления контентом, так называемую CMS или начинают изучать язык программирования для WEB – РНР, чтобы максимально упростить и автоматизировать процесс управления сайтом!

Тут у Вас, наверное, возникнет вопрос – "Какое же преимущество дает динамически сайт PHP, перед статическим?"

Чтобы ответить на этот вопрос, давайте посмотрим на сайт, сделанный с использованием связки обычного HTML и простого языка программирования для web - PHP.

Такой сайт можно сравнить с конструктором! Что мы имеем ввиду?!

Давайте разделим наш сайт на несколько основных блоков! Это будут такие блоки, как:

header - шапка сайта

footer – окончание сайта («Подвал» сайта)

левый блок, с навигацией по сайту

правый блок, с какой-либо рекламной информацией

Итак, после того, как разделили сайт на основные блоки, заносим и сохраняем их в отдельные файлы!

Вывод:

Это нам дает свободу и легкость в управлении! Т.е. мы можем подключить эти блоки к основному каркасу нашего сайта и получить полноценный сайт. Теперь, если даже у нас на сайте будет 1000 страниц и более, и Вы захотите изменить шапку своего сайта, то Вам не придется изменять все страницы сайта вручную. Вам достаточно будет открыть файл, в котором вы сохранили шапку своего сайта, отредактировать все, что Вам надо и все!!!

Эти изменения автоматически сохраняться на всех страницах Вашего сайта!

Кроме этого, всю полезную информацию (статьи, описание товаров и услуг, уроки, заметки и т.д.) такого сайта можно хранить в базе данных, что дает ещё больше преимуществ:

- Сайт занимает меньше места;

- Упрощается резервное копирование данных;

- Облегчается изменение любых данных;

- Становится возможным подсчет любой информации (сколько раз посмотрели страницу, скачали файл, добавили комментариев и т.д.);

- На сайте можно использовать множество готовых PHP скриптов;

- и т.д.


Лабораторная работа №1

Учимся работать с WEB сервером

Все созданные вами файлы (программы) необходимо запускать с ВЕБ СЕРВЕРА.

Проще говоря, вы создаете программу (PHP скрипт) у себя на рабочем столе, либо в другой вашей папке и загружаете на веб сервер по FTP протоколу, затем просматриваете полученный результат по http протоколую

1. Веб серер находится по адресу 192.168.1.1

Попробуйте соединиться с данным сервером, набрав в браузере http://192.168.1.1

У каждого ученика создана своя личная рабочая директория, в соответствии с номером методички.

Возможность заливаться .php файлы на веб серер, реализована по средствам ftp сервера.

Для того, что бы зайти в свою личную папку с данными, необходимо проделать следующие действия:

 


Открыть «Мой компьютер», в панели адреса набираем ftp://8:4483@192.168.1.1

Где 8 – логин

4483 – пароль

Файлы для веб сервера необходимо складывать в папку с номером варианта методички.

Исполняемый файл будет доступен по адресу http://192.168.1.1/8

2. На рабочем столе создайте текстовый документ с именем fio

Затем необходимо задать расширение файлу .php

Т.е. переименовать fio.txt в fio.php

Если расширения файлов не видны, необходимо зайти: Мой компьютер -> сервис -> свойства папки -> вид. Снять галочку – «скрывать расширение для зарегистрированных типов файлов». В конце занятия обязательно проделать данную операцию в обратном порядке и установить галочку обратно.

3. Открываем файл fio.php с помощью блокнота и пишем простейший пример, только с вашей фамилией, именем и отчеством – на транслите:

<?php

Echo ‘Ivanov Ivan Ivanovich’;

?>

Сохраняем PHP файл. (*echo – это команда вывода на экран. Ковычки и точка с запятой необходимы).

4. Скопируйте fio.php с рабочего стола, в свою папку на веб сервере.

Посмотрите результат по адресу http://192.168.1.1/8/fio.php

Порядок работы с файлами:

Создаем и изменяем файлы на рабочем столе, затем заливаем на сервер по протоколу FTP и просматриваем результат по протоколу HTTP

 


Лабораторная работа №2

Традиционно, знакомство с языком программирования начинают с пресловутой программы "Hello, World!". Что ж, мы не будем отступать от этой традиции, и напишем нашу первую программу на PHP!

Итак, берем редактор PHP-кода (подойдет и простой текстовый редактор - блокнот), и напишем следующий PHP код:

<?php

        echo "Hello, World!";  

?>

Прежде, чем запустить программу, ее нужно установить на сервере. Для этого сохраните написанный PHP скрипт под названием start.php. Затем скопируйте его в каталог DocumentRoot вашего сервера. По умолчанию, в Linux таким каталогом является /var/www/html (в старых версиях Linux - /home/httpd/html/). В Windows расположение каталога зависит от типа установленного web-сервера и его настроек. В нашем случае файлы хранятся на на веб сервере, доступ по FTP протоколу (предыдущая лабораторная). Теперь наберите в адресной строке вашего браузера http://192.168.1.1/номер%методички/start.php , либо другая, установленная преподавателем директория, если все установлено и настроено правильно, вы увидите текст Hello, World!

Увидели? Если да, то поздравляем, вы написали первую простейшую программу (скрипт) на PHP!

А теперь разберем код нашего простейшего скрипта.

Код PHP заключается в специальные теги <? и ?>

Начало скрипта отмечается открывающим тегом <? , а конец - ?>

После открывающего тега <? следует первый оператор echo, который осуществляет вывод информации на экран.

Оператор echo можно назвать самым главным, ведь он выводит информацию в браузер, в результате его работы мы и видим наш Hello, World!

Теперь давайте несколько усложним наш скрипт, добавив в него вывод html-тегов:

<?php

echo "<html><body>";

echo "<h1>Hello, World!</h1>";

echo "</body></html>";

?>

Наш несколько модифицированный скрипт теперь будет выводить большими буквами текст Hello, World!

Настало время вывести текст на русском языке. Вы, наверняка, спросите, а почему мы сразу не могли вывести текст на русском языке? Ответ заключается в том, что текст на русском языке, без указания определенного заголовка html-документа, может быть выведен некорректно. А теперь давайте, наконец, изменим наш скрипт так, чтобы он мог приветствовать нас на русском языке:

<?php

echo "<html><head>";

echo '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">';

echo "<title>Моя первый PHP скрипт</title>";

echo "</head>";

echo "<body>";

echo "<h1>Привет! Я PHP скрипт!</h1>";

echo "</body>";

echo "</html>";

?>

Будьте внимательны, во второй строке кода html-код заключен в апострофы, а не в кавычки! Этим мы даем интерпретатору понять, что оператор echo должен выводить символы как есть, то есть не разбирая код в апострофах. А вот строки в кавычках позволяют выводить значения переменных

В приведенном скрипте мы послали браузеру заголовок <head><meta....></head>, который дает понять браузеру, какую мы будем использовать кодировку для вывода текста html-документа, а также указали текст заголовка браузера: <title>Мой первый PHP скрипт</title>.

А затем вывели текст на русском языке:

 

 <body><h1>Привет! Я PHP скрипт!</h1></body>.

 

Возможно, визуально, изменения вы не заметили, но посмотрите исходный код страницы в браузере – в нем присутствуют HTML теги.

Вообще, теги можно и не выводить с помощью оператора echo. Мы можем вставлять PHP-код непосредственно в html-содержимое – подробнее в следующей лабораторной работе.


Лабораторная работа №3

PHP в HTML-документах

 

Если вы рассмотрели предыдущую лабораторную, то увидели, что всю информацию, включая html-код, мы выводили с помощью оператора echo. Однако PHP-скрипты можно писать и по-другому. Рассмотрим пример:

<html>

     <head>

         <title>Пример</title>

     </head>

     <body>

         <?php

         echo "Привет, я - скрипт PHP!";

         ?>

     </body>

</html>

Как вы наверно уже заметили, блок пхп кода располагается посередине, до и после него обычный html код.

Теперь вы можете сохранить приведенный PHP скрипт на сервере в виде файла .php, например start.php и проверить результат.

Html-код будет корректно обрабатываться интерпретатором PHP, поэтому у вас не будут возникать ошибки при выполнении этого скрипта.

Когда PHP обрабатывает файл, он просто передаёт его текст, пока не встретит один из специальных тегов, который сообщает ему о необходимости начать интерпретацию текста как кода PHP. Затем он выполняет весь найденный код до закрывающего тега, говорящего интерпретатору, что далее снова идет просто текст. Этот механизм позволяет вам внедрять PHP-код в HTML - все за пределами тегов PHP остается неизменным, тогда как внутри - интерпретируется как PHP код.

Существует четыре набора тегов, которые могут быть использованы для обозначения PHP-кода. Из них только два (<?php. . .?> и <script language="php">. . .</script>) всегда доступны; другие могут быть включены или выключены в конфигурационном файле php.ini. Хотя короткие теги и теги в стиле ASP могут быть удобны, они не так переносимы, как длинные версии. Кроме того, если вы намереваетесь вставлять PHP-код в XML или XHTML, чтобы соответствовать XML, вам следует использовать форму <?php. . .?>.

 

Теги, поддерживаемые PHP:

1.  <?php echo("если вы хотите работать с документами

XHTML или XML, делайте так\n"); ?>

 

2.  <? echo ("это простейшая инструкция обработки SGML\n"); ?>

    <?= выражение ?> Это синоним для "<? echo выражение ?>"

   

3.  <script language="php">

        echo ("некоторые редакторы (например, FrontPage) не

              любят инструкции обработки");

    </script>

4.  <% echo ("Вы можете по выбору использовать теги в стиле ASP"); %>

    <%= $variable; # Это синоним для "<% echo . . ." %>

Первый способ, <?php. . .?>, наиболее предпочтительный, так как он позволяет использовать PHP в коде, соответствующем правилам XML, таком как XHTML.

Второй способ не всегда доступен. Короткие теги доступны только когда они включены. Это можно сделать, используя функцию short_tags() (только в PHP 3), включив установку short_open_tag в конфигурационном файле PHP, либо скомпилировав PHP с параметром --enable-short-tags для configure. Даже если оно включено по умолчанию в php.ini-dist, использование коротких тегов не рекомендуется.

Четвертый способ доступен только если теги в стиле ASP были включены, используя конфигурационную установку asp_tags.

Замечание: Поддержка тегов в стиле ASP была добавлена в версии PHP 3.0.4.

Замечание: Следует избегать использования коротких тегов при разработке приложений или библиотек, предназначенных для распространения или размещения на PHP-серверах, не находящихся под вашим контролем, так как короткие теги могут не поддерживаться на целевом сервере. Для создания переносимого, совместимого кода, не используйте короткие теги.

Закрывающий тег блока PHP-кода включает сразу следующий за ним перевод строки, если он имеется. Кроме того, закрывающий тег автоматически подразумевает точку с запятой; вам не нужно заканчивать последнюю строку кода в блоке точкой с запятой. Закрывающий тег PHP-блока в конце файла не является обязательным.


Лабораторная работа №4

Комментарии в PHP-скриптах

Написание практически любой программы не обходится без комментариев.

PHP поддерживает комметарии в стиле 'C', 'C++' и оболочки Unix.

Комментарии в PHP могут быть трех типов:

<?php

     echo "Это тест"; // Это однострочный комментарий в стиле c++

     /* Это многострочный комментарий

        еще одна строка комментария */

     echo "Это еще один тест";

     echo "Последний тест"; # Это комментарий в стиле оболочки Unix

?>

Однострочные комментарии идут только до конца строки или текущего блока PHP-кода.

<h1>Это <?php # echo "простой";?> пример.</h1>

<p>Заголовок вверху выведет 'Это пример'.

Будьте внимательны, следите за отсутствием вложенных 'C'-комментариев, они могут появиться во время комментирования больших блоков:

<?php

  /*

     echo "Это тест"; /* Этот комментарий вызовет проблему */

  */

?>

Однострочные комментарии идут только до конца строки или текущего блока PHP-кода, в зависимости от того, что идет перед ними. Это означает, что HTML-код после // ?> БУДЕТ напечатан: ?> выводит из режима PHP и возвращает в режим HTML, но // не позволяет этого сделать.

Повторим еще раз:

echo ‘просто команда вывода на экран’; //однострочный  комментарий

echo ‘просто команда вывода на экран’;  #однострочный комментарий

echo ‘просто команда вывода на экран’;  /* это

                                                         многострочный

                                                         комментарий */


Лабораторная работа №5

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

Почти в любом языке программирования существует такое понятие, как переменная.

При программировании на PHP можно не скупиться на объявление новых переменных. Принципы экономии памяти, которые были актуальны несколько лет назад, сегодня в расчет не принимаются. Однако, при хранении в переменных больших объемов памяти, лучше удалять неиспользуемые переменные, используя оператор Unset.

Вообще, переменная - это область оперативной памяти, доступ к которой осуществляется по имени. Все данные, с которыми работает программа, хранятся в виде переменных (исключение — константа, которая, впрочем, может содержать только число или строку). Такого понятия, как указатель (как в Си), в PHP не существует — при присваивании переменная копируется один-в-один, какую бы сложную структуру она ни имела. Тем не менее, в PHP, начиная с версии 4, существует понятие ссылок — жестких и символических

Имена всех переменных в PHP должны начинаться со знака $ — так интерпретатору значительно легче "понять" и отличить их, например, в строках. Имена переменных чувствительны к регистру букв: например, $var — не то же самое, что $Var или $VAR:

<?php

$var = "Bob";

$Var = "Joe";

echo "$var, $Var";      // выведет "Bob, Joe"

$site = 'not yet';     // верно;

$4site = 'not yet';     // неверно; начинается с цифры

$_4site = 'not yet';    // верно; начинается с символа подчеркивания

?>

В PHP не нужно ни описывать переменные явно, ни указывать их тип. Интерпретатор все это делает сам. Однако иногда он может ошибаться (например, если в текстовой строке на самом деле задано десятичное число), поэтому изредка возникает необходимость явно указывать, какой же тип имеет то или иное выражение.

Иногда возникает потребность узнать тип переменной (например, переданной в параметрах функции) прямо во время выполнения программы.

«Переменная – это область памяти, к которой можно обратиться из программы по имени».

Для того чтоб объявить переменную в PHP, вначале имени переменной, всегда ставиться знак $ - это отличительный знак в коде, что это и есть переменная. Далее следует имя переменной, оно может состоять из любого количества буквенно-цифровых знаков и символа подчёркивания, но НЕ МОЖЕТ НАЧИНАТЬСЯ С ЦИФРЫ!.

Варианты правильного написания переменных:

$name

$name_full

$n23a

$t56_er

$n_1_b_2

и т.д.

Варианты не правильного написания переменных:

$ name

$7_name

$\name

$na me

и т.д.

Пробелов в именах переменных быть не может.

Нельзя использовать русские буквы в именах переменных!

Так же переменные чувствительны к регистру (заглавные или прописные буквы), так переменная объявленная с именем $DOM, не может быть написана в дальнейшем как $dom - это две разные переменные.

Листинг № 1 - Влияние регистра букв в именах переменных

<?php

  

$City = "London";

$CITY = "Moscow";

$city = "Paris";

  

echo "$City, $CITY, $city"; // на мониторе увидим: London, Moscow, Paris";

echo "$city, $city, $city"; // на мониторе увидим: Paris, Paris, Paris

?>

 

 


Лабораторная работа №6

Типы данных

 

Четыре скалярных типа:

·       boolean (двоичные данные)

·       integer (целые числа)

·       float (число с плавающей точкой или 'double')

·       string (строки)

Два смешанных типа:

·       array (массивы)

·       object (объекты)

И два специальных типа:

·       resource (ресурсы)

·       NULL (пустой тип)

Существуют также несколько псевдотипов:

·       mixed (смешанный тип)

·       number (числа)

·       callback (обратного вызова)

 

Рассмотрим кратко перечисленные типы данных PHP.

Тип Boolean (двоичные данные)

Это простейший тип. Он выражает истинность значения - это может быть либо TRUE, либо FALSE. Булев тип был введен в PHP 4.

Чтобы определить булев тип, используйте ключевое слово TRUE или FALSE. Оба регистро-независимы.

<?php

$x = True; // присвоить $x значение TRUE

?>

Обычно вы используете некий оператор, который возвращает логическое выражение, а затем предает его управляющей конструкции.

<?php

// == это оператор, который проверяет

// эквивалентность и возвращает булево значение

if ($action == "показать_версию") {

     echo "Версия 1.23";

}

// это не обязательно...

if ($show_separators == TRUE) {

     echo "<hr>\n";

}

// ...потому что вы можете просто написать

if ($show_separators) {

     echo "<hr>\n";

}

?>

 

Тип integer (целые числа)

Целое это число из множества Z = {..., -2, -1, 0, 1, 2, ...}, обычно длиной 32 бита (от –2 147 483 648 до 2 147 483 647).

Целые могут быть указаны в десятичной, шестнадцатеричной или восьмеричной системе счисления, по желанию с предшествующим знаком (- или +).

Если вы используете восьмеричную систему счисления, вы должны предварить число 0 (нулем), для использования шестнадцатеричной системы нужно поставить перед числом 0x.

<?php

$a = 1234; // десятичное число

$a = -123; // отрицательное число

$a = 0123; // восьмеричное число (эквивалентно 83 в десятичной системе)

$a = 0x1A; // шестнадцатеричное число (эквивалентно 26 в десятичной системе)

?>

 

Тип float (числа с плавающей точкой)

Double - вещественное число довольно большой точности (ее должно хватить для подавляющего большинства математических вычислений).

Числа с плавающей точкой (они же числа двойной точности или действительные числа) могут быть определены при помощи любого из следующих синтаксисов:

<?php

$a = 1.234;

$b = 1.2e3;

$c = 7E-10;

?>

 

Тип string (строки)

Строка в PHP - это набор символов любой длины. В отличие от Си, строки могут содержать в себе также и нулевые символы, что никак не повлияет на программу. Иными словами, строки можно использовать для хранения бинарных данных. Длина строки ограничена только размером свободой оперативной памяти.

Строка легко может быть обработана при помощи стандартных функций, можно также непосредственно обратиться к любому ее символу.

Пример строковой переменной:

<?

$a = "Это просто текст, записанный в строковую переменную";

echo $a; //Выводит 'Это просто текст, записанный в строковую переменную'

?>

 

Тип array (массивы)

Массив в PHP - это упорядоченный набор данных, в котором установлено соответствие между значением и ключом.

Индекс (ключ) служит для однозначной идентификации элемента внутри массива. В одном массиве не может быть двух элементов с одинаковыми индексами.

PHP позволяет создавать массивы любой сложности. Рассмотрим некоторые примеры:

 

Простой массив (список)

Массивы, индексами которых являются числа, начинающиеся с нуля - это списки:

<?php

// Простой способ инициализации массива

$names[0]="Апельсин";

$names[1]="Банан";

$names[2]="Груша";

$names[3]="Помидор";

// Здесь: names - имя массива, а 0, 1, 2, 3 - индексы массива

?>

 


Ассоциативные массивы

В PHP индексом массива может быть не только число, но и строка. Причем на строку не накладываются ограничения: она может содержать пробелы, специальные символы и быть любой длины.

Массивы, индексами которых являются строки, называются ассоциативными массивами. Индексы ассоциативных массивов называются ключами. Пример ассоциативного массива:

<?php

// Ассоциативный массив

$names["Иванов"]="Иван";

$names["Сидоров"]="Николай";

$names["Петров"]="Петр";

// В данном примере: фамилии - ключи ассоциативного массива

// , а имена - элементы массива

?>

 

Многомерные массивы

Для создания массивов в PHP существует специальная инструкция array(). Ее удобно использовать для создания многомерных массивов. Приведем конкретный пример:

<?php

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

$A["Ivanov"] = array("name"=>"Иванов И.И.", "age"=>"25", "email"=>"ivanov@mail.ru");

$A["Petrov"] = array("name"=>"Петров П.П.", "age"=>"34", "email"=>"petrov@mail.ru");

$A["Sidorov"] = array("name"=>"Сидоров С.С.", "age"=>"47", "email"=>"sidorov@mail.ru");

?>

Многомерные массивы похожи на записи в языке Pascal или структуры в языке C.

 

Тип object (объекты)

Объект является одним из базовых понятий объектно-ориентированного программирования. Внутренняя структура объекта похожа на хэш, за исключением того, что для доступа к отдельным элементам и функциям используется оператор ->, а не квадратные скобки.

Для инициализации объекта используется выражение new, создающее в переменной экземпляр объекта.

<?php

class foo

{

     function do_foo()

     {

         echo "Doing foo.";

     }

}

 

$bar = new foo;

$bar->do_foo();

?>

 

Тип resource (ресурсы)

Ресурс - это специальная переменная, содержащая ссылку на внешний ресурс. Ресурсы создаются и используются специальными функциями.

 


Тип NULL (пустой тип)

Специальное значение NULL говорит о том, что эта переменная не имеет значения. NULL - это единственно возможное значение типа NULL (пустой тип).

Переменная считается NULL если:

ей была присвоена константа NULL;

ей еще не было присвоено какое-либо значение;

она была удалена с помощью unset().

<?php

$var = NULL;

?>

 

Псевдотип mixed (смешанный тип)

mixed говорит о том, что параметр может принимать множество (но не обязательно все) типов.

gettype(), например, принимает все типы PHP, тогда как str_replace() принимает строки и массивы.

 

Псевдотип number (числа)

number говорит о том, что параметр может быть либо integer, либо float.

 

Псевдотип callback (обратного вызова)

Некоторые функции, такие как call_user_func() или usort() принимают в качестве параметра определенные пользователем callback-функции. Callback-функции могут быть не только простыми функциями, но также методами объектов, включая статические методы классов.

PHP-функция передается просто как строка ее имени. Вы можете передать любую встроенную или определенную пользователем функцию за исключением array(), echo(), empty(), eval(), exit(), isset(), list(), print() и unset().

Приведем примеры callback функций:

<?php

 

// простой пример callback

function my_callback_function() {

     echo 'hello world!';

}

call_user_func('my_callback_function');

 

// примеры callback-метода

class MyClass {

     function myCallbackMethod() {

         echo 'Hello World!';

     }

}

// вызов метода статического класса без создания объекта

call_user_func(array('MyClass', 'myCallbackMethod'));

 

// вызов метода объекта

$obj = new MyClass();

call_user_func(array(&$obj, 'myCallbackMethod'));

?>

 


Лабораторная работа №7

Конструкции языка PHP

Любой сценарий PHP сформирован из ряда конструкций. Конструкцией могут быть операторы, функции, циклы, условные конструкции, даже конструкции, которые не делают ничего (пустые конструкции). Конструкции обычно заканчиваются точкой с запятой. Кроме того, конструкции могут быть сгруппированы в группу, формируя группу конструкций с изогнутыми фигурными скобками {...}. Группа конструкций - это также отдельная конструкция. Конструкции языка PHP похожи на конструкции языка C.

Итак, основные конструкции языка PHP:

Условные операторы:

·       if

·       else

·       elseif

·       » Циклы:

·       while

·       do-while

·       for

·       foreach

·       break

·       continue

Конструкции выбора:

·       switch

Конструкции возврата значений:

·       return

Конструкции включений:

·       require()

·       include()

·       require_once()

·       include_once()

 

Условные операторы

Условные операторы являются, пожалуй, наиболее распространенными конструкциями во всех алгоритмических языках программирования. Рассмотрим основные условные операторы языка PHP.

 

Конструкция if

Синтаксис конструкции if аналогичен конструкции if в языке C:

<?php

if (логическое выражение) оператор;

?>

Согласно выражениям PHP, конструкция if содержит логическое выражение. Если логическое выражение истинно (true), то оператор, следующий за конструкцией if будет исполнен, а если логическое выражение ложно (false), то следующий за if оператор исполнен не будет. Приведем примеры:

<?php

if ($a > $b) echo "значение a больше, чем b";

?>

В следующем примере если переменная $a не равна нулю, будет выведена строка "значение a истинно (true):

<?php

if ($a) echo "значение a истинно (true) ";

?>

В следующем примере если переменная $a равна нулю, будет выведена строка "значение a ложно (false):

<?php

if (!$a) echo "значение a ложно (false) ";

?>

 

Часто вам будет необходим блок операторов, который будет выполняться при определенном условном критерии, тогда эти операторы необходимо поместить в фигурные скобки {...} Пример:

<?php

if ($a > $b) {

     echo "a больше b";

     $b = $a;

}

?>

Приведенный пример выведет сообщение, "a больше b", если $a > $b, а затем переменная $a будет приравнена к переменной $b. Заметим, что данные операторы выполняются в теле конструкции if.

 

Конструкция else

Часто возникает потребность исполнения операторов не только в теле конструкции if, если выполнено какое-либо условие конструкции if, но и в случае, если условие конструкции if не выполнено. В данной ситуации нельзя обойтись без конструкции else. В целом, такая конструкция будет называться конструкцией if-else.

Синтаксис конструкции if-else такой:

if (логическое_выражение)

инструкция_1;

else

инструкция_2;

Действие конструкции if-else следующее: если логическое_выражение истинно, то выполняется

инструкция_1, а иначе — инструкция_2. Как и в любом другом языке, конструкция else может опускаться, в этом случае при получении должного значения просто ничего не делается.

Если инструкция_1 или инструкция_2 должны состоять из нескольких команд, то

они, как всегда, заключаются в фигурные скобки. Например:

<?php

if ($a > $b) {

     echo "a больше, чем b";

} else {

     echo "a НЕ больше, чем b";

}

?>

Конструкция if-else имеет еще один альтернативный синтаксис:

if (логическое_выражение):

команды;

elseif(другое_логическое_выражение):

другие_команды;

else:

иначе_команды;

endif

Обратите внимание на расположение двоеточия (:)! Если его пропустить, будет сгенерировано сообщение об ошибке. И еще: как обычно, блоки elseif и else можно опускать.

 

Конструкция elseif

elseif - это комбинация конструкций if и else. Эта конструкция расширяет условную конструкцию if-else.

Приведем синтаксис конструкции elseif:

if (логическое_выражение_1)

оператор_1;

elseif (логическое_выражение_2)

оператор_2;

else

оператор_3;

Практический пример использования конструкции elseif:

<?php

if ($a > $b) {

     echo "a больше, чем b";

} elseif ($a == $b) {

     echo "a равен b";

} else {

     echo "a меньше, чем b";

}

?>

Вообще, конструкция elseif не очень удобна, поэтому применяется не так часто.


Лабораторная работа №8

Циклы в PHP

На втором месте по частоте использования, после конструкций условий, находятся циклы.

Циклы позволяют повторять определенное (и даже неопределенное - когда работа цикла зависит от условия) количество раз различные операторы. Данные операторы называются телом цикла. Проход цикла называется итерацией.

PHP поддерживает три вида циклов:

·       Цикл с предусловием (while);

·       Цикл с постусловием (do-while);

·       Цикл со счетчиком (for);

·       Специальный цикл перебора массивов (foreach).

Рассмотрим циклы PHP подробнее.

 

Цикл с предусловием while

Цикл с предусловием while работает по следующим принципам:

Вычисляется значение логического выражения.

Если значение истинно, выполняется тело цикла, в противном случае - переходим на следующий за циклом оператор.

Синтаксис цикла с предусловием:

while (логическое_выражение)

инструкция;

В данном случае телом цикла является инструкция. Обычно тело цикла состоит из большого числа операторов. Приведем пример цикла с предусловием while:

<?php

$x=0;

while ($x++<10) echo $x;

// Выводит 12345678910

?>

Обратите внимание на последовательность выполнения операций условия $x++<10. Сначала проверяется условие, а только потом увеличивается значение переменной. Если мы поставим операцию инкремента перед переменной (++$x<10), то сначала будет выполнено увеличение переменной, а только затем - сравнение. В результате мы получим строку 123456789. Этот же цикл можно было бы записать по-другому:

<?php

$x=0;

while ($x<10)

{

$x++; // Увеличение счетчика

echo $x;

}

// Выводит 12345678910

?>

Если мы увеличим счетчик после выполнения оператора echo, мы получим строку 0123456789. В любом случае, мы имеем 10 итераций. Итерация - это выполение операторов внутри тела цикла.

Подобно конструкции условного оператора if, можно группировать операторы внутри тела цикла while, используя следующий альтернативный синтаксис:

while (логическое_выражение):

инструкция;

...

endwhile;

Пример использования альтернативного синтаксиса:

<?php

$x = 1;

while ($x <= 10):

     echo $x;

     $x++;

endwhile;

?>

 

Цикл с постусловием do while

В отличие от цикла while, этот цикл проверяет значение выражения не до, а после каждого прохода. Таким образом, тело цикла выполняется хотя бы один раз. Синтаксис цикла с постусловием такой:

do

{

тело_цикла;

}

while (логическое_выражение);

После очередной итерации проверяется, истинно ли логическое_выражение, и, если это так, управление передается вновь на начало цикла, в противном случае цикл обрывается.

Альтернативного синтаксиса для do-while разработчики PHP не предусмотрели (видимо, из-за того, что, в отличие от прикладного программирования, этот цикл довольно редко используется при программировании web-приложений).

Пример скрипта, показывающего работу цикла с постусловием do-while:

<?php

$x = 1;

do {

     echo $x;

} while ($x++<10);

?>

Рассмотренный сценарий выведет: 12345678910

 

Цикл со счетчиком for

Цикл со счетчиком используется для выполнения тела цикла определенное число раз. С помощью цикла for можно (и нужно) создавать конструкции, которые будут выполнять действия совсем не такие тривиальные, как простая переборка значения счетчика.

Синтаксис цикла for такой:

for (инициализирующие_команды; условие_цикла; команды_после_итерации) { тело_цикла; }

Цикл for начинает свою работу с выполнения инициализирующих_команд. Данные команды выполняются только один раз. После этого проверяется условие_цикла, если оно истинно (true), то выполняется тело_цикла. После того, как будет выполнен последний оператор тела, выполняются команды_после_итерации. Затем снова проверяется условие_цикла. Если оно истинно (true), выполняется тело_цикла и команды_после_итерации, и.т.д.

<?php

for ($x=0; $x<10; $x++) echo $x;

?>

Данный сценарий выводит: 0123456789

Есть вариант вывода строки 12345678910:

<?php

for ($x=0; $x++<10;) echo $x;

// Выводит 12345678910

?>

В данном примере мы обеспечили увеличение счетчика при проверке логического выражения. В таком случае нам не нужны были команды, выполняющиеся после итерации.

Если необходимо указать несколько команд, их можно разделить запятыми, пример:

<?php

for ($x=0, $y=0; $x<10; $x++, $y++) echo $x;

// Выводит 0123456789

?>

Приведем еще один, более практичный пример использования нескольких команд в цикле for:

<?php

for($i=0,$j=0,$k="Точки"; $i<10; $j++,$i+=$j) { $k=$k."."; echo $k; }

// Выводит Точки.Точки..Точки...Точки....

?>

Рассмотренный пример (да и вообще любой цикл for) можно реализовать и через while, только это будет выглядеть не так изящно и лаконично.

Для цикла for имеется и альтернативный синтаксис:

for(инициализирующие_команды; условие_цикла; команды_после_итерации):

операторы;

endfor;

 

Цикл перебора массивов foreach

В PHP4 появился еще один специальный тип цикла - foreach. Данный цикл предназначен специально для перебора массивов.

Синтаксис цикла foreach выглядит следующим образом:

foreach (массив as $ключ=>$значение)

команды;

Здесь команды циклически выполняются для каждого элемента массива, при этом очередная пара ключ=>значение оказывается в переменных $ключ и $значение. Приведем пример работы цикла foreach:

<?php

$names["Иванов"] = "Андрей";

$names["Петров"] = "Борис";

$names["Волков"] = "Сергей";

$names["Макаров"] = "Федор";

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

echo "<b>$value $key</b><br>";

}

?>

Рассмотренный сценарий выводит:

Андрей Иванов

Борис Петров

Сергей Волков

Федор Макаров

У цикла foreach имеется и другая форма записи, которую следует применять, когда нас не интересует значение ключа очередного элемента. Выглядит она так:

foreach (массив as $значение)

команды;

В этом случае доступно лишь значение очередного элемента массива, но не его ключ. Это может быть полезно, например, для работы с массивами-списками:

<?php

$names[] = "Андрей";

$names[] = "Борис";

$names[] = "Сергей";

$names[] = "Федор";

foreach ($names as $value) {

echo "<b>$value</b><br>";

}

?>

Внимание: Цикл foreach оперирует не исходным массивом, а его копией. Это означает, что любые изменения, которые вносятся в массив, не могут быть "видны" из тела цикла. Что позволяет, например, в качестве массива использовать не только переменную, но и результат работы какой-нибудь функции, возвращающей массив (в этом случае функция будет вызвана всего один раз - до начала цикла, а затем работа будет производиться с копией возвращенного значения).


Лабораторная работа №8

Одномерные и двумерные массивы

 

Cоздание одномерных массивов в PHP5.

Если говорить человеческим языком, то массивом называется некая зарезервированная область, в которой упорядочено содержатся данные. Если взять, например, человека, то у каждого есть свои черты как внешности так и характера. Попробуем от этого оттолкнуться, проведя параллель.

Черты характера

-       смелый

-       верный

-       добрый

-       весёлый

-       сильный

Вот, в принципе, мы создали массив с данными. Его схема представления полностью идентична с тем, как содержатся данные в стеке массива.

Стек (англ. stack — стопка) — структура данных с методом доступа к элементам LIFO (англ. Last In — First Out, «последним пришел — первым вышел»). Чаще всего принцип работы стека сравнивают со стопкой тарелок: чтобы взять вторую сверху, нужно взять верхнюю.

Все вышеперечисленные свойства можно отнести к характеру человека. В виду этого назовём массив -как и всё на свете тоже имеет имя- character (от русс. характер). Теперь для того, чтобы обратиться к этому ящику под именем character, нам обязательно следует указать индекс того типа характера, который нам нужно извлечь из этого массива character.

Массив - последовательность однотипных элементов, число которых фиксировано и которым присвоено одно имя. Положение элемента в массиве однозначно определяется его индексами. Выделяют одномерные массивы (вектора) и двумерные массивы (матрицы).

Индекс также называют ключом массива, смысл от этого не меняется.

А индексом массива в данном примере является его номер строки, т.е. верный имеет индекс 2, весёлый - индекс 4. На этом с аллегориями пока закончим, перейдём уже к самому синтаксису написания кода создания массива.

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

Листинг № 1 - Первый способ. Создаём массив character

<?php

 

         

        $character[1] = "смелый";

        $character[2] = "верный";

        $character[3] = "добрый";

        $character[4] = "весёлый";

        $character[5] = "сильный";

        // массив создан

        // это - массив, и в нём содержатся все черты характера,

                //которые мы в него поместили

        $character;  // чтобы вывести какую-либо черту характера,

       // следует обратиться к массиву, указав на индекс - это цифры  // в квадратных скобках

         

        echo $character[5]; // выведет на экран - сильный  

?>

Такой способ создания массивов на практике применяется редко, его практичность вызывает сомнение, он скорее подходит в качестве примера, показа структуры массива. Рассмотрим ещё один способ.

Листинг № 2 - Второй способ. Создаём массив с помощью функции array

<?php  

 

$character = array(1=>'смелый',2=>'верный',3=>'добрый',4=>'весёлый',5=>'сильный');

         // массив создан

         echo $character[4]; // весёлый  

?>

Этот способ выглядит уже более рациональным, хотя до идеала тоже не дотягивает. Здесь массив создан с помощью встроенной функции PHP array(). В скобках присутствуют пары индекс => значение. Знак => - является указателем для присваивания индекса значению или наоборот значению индекс. Рассмотрим ещё пример.

Листинг № 3 - Третий способ. Создание массива с помощью функции array без указателей

<?php  

    $character = array('смелый','верный','добрый','весёлый','сильный');

     

    // массив создан

     

    echo $character[4]; // сильный

     

?>

                                 

Сравните листинг 2 и листинг 3. Видите разницу в выводе на монитор?! Ни какой ошибки здесь нет, всё гораздо прозаичней. Смотрите ниже лампочку.

Все счётчики в программировании по умолчанию начинают свой отсчёт с нуля!

Теперь всё встало на свои места, т.е. без указателя (=>) в скобках массива, значениям присваивается индекс по порядку, начиная с нуля. Итак, индексу ноль соответствует значение смелый (0=>смелый) и т.д. по порядку.

Листинг № 4 - Четвёртый способ. Создание массива с помощью функции array с указателем и без указателя

<?php  

 

    $character = array('смелый',4 =>'верный','добрый',2 =>'весёлый','сильный');

     

    // массив создан

    echo $character[0]; // смелый

    echo $character[1]; // пусто

    echo $character[2]; // весёлый

    echo $character[3]; // пусто  

    echo $character[4]; // верный  

    echo $character[5]; // добрый  

    echo $character[6]; // сильный  

?>

В этом примере на первый взгляд непонятно что откуда берётся, но всё заключено в абсолютную логику. Попробуем разобраться: счёт ведётся в скобках, туда посматриваем и вникаем.

смелый - по умолчанию присваивается ноль (не имеет указателя на индекс)

верный - имеет указатель на индекс 4, хотя по умолчанию должен быть 1 =>

добрый - по умолчанию должен быть индекс 2 =>, но индекс 2 принудительно присвоен типу характера "весёлый"

весёлый - всё понятно, имеет второй индекс

сильный - по умолчанию должен иметь индекс 4, но он уже занят. Следом за четвёркой идёт цифра 5 и первый непроиндексированный тип характера, следом за четвёртым индексом - идёт "добрый" - индекс 5, а следом ещё не имеющим индекса, идёт тип характера сильный - он и будет с шестёркой.

 Двумерный массив.

И так разберём, что такое двумерный массив и как он выглядит.

Сказать простым языком двумерный массив это массив, элементами которого выступают другие массивы с данными (массив в массиве). Кстати сказать вложенность массивов может быть не только двумерной, но на практике такое встречается крайне редко. Причина тому, затраты на обработку. Начиная работу с массивом на странице, скрипт загружает всё содержимое массива в оперативную память, тем самым процесс работы с таким массивом становится слишком ресурсоёмким, не оправданным. В таких случаях применяется база данных, за счёт чего происходит увеличение быстродействия.

Двумерный массив это по сути матрица, т.е. таблица с данными. Теперь посмотрим как это выглядит визуально, как создать двумерный массив.

Листинг № 1 - Пример создания двумерного массива.

<?php

// массив Машины  

$m = array('Honda','Hammer','BMW','Toyota');  

// массив Самолёты  

$s = array('AH','TU-144','Boing','СУ');  

// массив Танки  

$t = array('Тигр','Пантера','Т-34','Аль Халид');  

// массив Корабли  

$k = array('Кузнецов','Ямато','Ясень','Петропавловск');  

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

$THN = array($m, $s, $t, $k);

?>

Пример из листинга № 1, достаточно наглядно показывает как формируется двумерный массив. Изначально создаётся одномерный массив, который в свою очередь, вкладывается в массив "Техника" $TH. таким образом уже массив $TH имеет в качестве значений своих ключей массивы. В этом примере мы создали не ассоциативный массив, просто для наглядности. Хотя для полной ясности содержимого при обходе массива, следует создать ассоциативный массив. Это такой массив в котором ключ это не числовое значение, задаваемое по умолчанию каждому элементу, а осмысленное название. Проще сказать именуем массив, согласно его содержимому.

Листинг № 2 - Ассоциативный двумерный массив.

<?php  

 

// массив Машины

$m = array('Honda','Hammer','BMW','Toyota');

// массив Самолёты

$s = array('AH','TU-144','Boing','СУ');

// массив Танки

$t = array('Тигр','Пантера','Т-34','Аль Халид');

// массив Корабли

$k = array('Кузнецов','Ямато','Ясень','Петропавловск');

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

$TH = array('Машины'=>$m, 'Самолёты'=>$s, 'Танки'=>$t, 'Корабли'=>$k);

?>

Теперь наш двумерный массив $TH имеет не просто числовой ключ для каждого входящего в него массива, а имя по которому можно определить содержание вложенного массива.

Обход двумерного массива.

Обход двумерного массива - есть не что иное, как последовательный перебор элементов массива. А в листинге ниже представлен код который ещё и выводит на монитор содержимое.

Конец формы

Начало формы

Листинг № 3 - Обход двумерного массива

Конец формы

Начало формы

<?php

// обход двумерного массива

for($i=0; $i < count($THN); $i++)   

{  

    

   for($q=0; $q < count($THN[$i]); $q++)  

   {  

     echo  " » ".$THN[$i][$q];     

   }  

   echo "<br>";  

}  

?>

На мониторе увидим следующее:

» Honda » Hammer » BMW » Toyota

» AH » TU-144 » Boing » СУ

» Тигр » Пантера » Т-34 » Аль Халид

» Кузнецов » Ямато » Ясень » Петропавловск

Это пример обхода, при котором двумерный массив является не ассоциативным, т.е. ключами двумерного массива выступают числа. Чтобы вывести на монитор содержимое ассоциативного массива, рассмотрим пример в листинге ниже.

Листинг № 4 - Обход двумерного ассоциативного массива.

<?php

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

$sum = count($TH);

// Ассоциативный массив следует обходить, при помощи конструкции foreach  

foreach($TH as $key => $vol)  

{

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

   echo $key ." -- ";

    

   // обход

   for($q=0; $q <= $sum; $q++)

   {

     echo " || ".$TH[$key][$q];    

   }

   echo "<br>";

}

?>

 

 

На мониторе увидим следующее:

Машины -- || Honda || Hammer || BMW || Toyota ||

Самолёты -- || AH || TU-144 || Boing || СУ ||

Танки -- || Тигр || Пантера || Т-34 || Аль Халид ||

Корабли -- || Кузнецов || Ямато || Ясень || Петропавловск ||

 

Ниже представлен пример упорядоченного вывода ассоциативного массива.

Листинг № 5 - Обход двумерного массива и вывод в таблице.

<?php  

 

// массив Машины

$m = array('Honda','Hammer','BMW','Toyota');

// массив Самолёты

$s = array('AH','TU-144','Boing','СУ');

// массив Танки

$t = array('Тигр','Пантера','Т-34','Аль Халид');

// массив Корабли

$k = array('Кузнецов','Ямато','Ясень','Петропавловск');

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

$TH = array('Машины'=>$m, 'Самолёты'=>$s, 'Танки'=>$t, 'Корабли'=>$k);

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

$sum = count($TH);

echo "<table>";

foreach($TH as $key => $vol)  

{

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

   echo "<th>".$key ."</th>";

       // обход

     for($q=0; $q <= $sum; $q++)

   {

     echo "<tr><td>  ".$TH[$key][$q]."<td></tr>";    

   }  

}

echo "</table>";

?>

На мониторе увидим следующее:

 

Машины

Honda

Hammer

BMW

Toyota

 

Самолёты

AH

TU-144

Boing

СУ

 

Танки

Тигр

Пантера

Т-34

Аль Халид

 

Корабли

Кузнецов

Ямато

Ясень

Петропавловск

Из вышесказанного, можно сделать вывод, что по сути при выводе на монитор после обхода двумерного массива, вложенный массив выступает как строка таблицы с данными, что и формирует в свою очередь матрицу. Если мы изначально составим правильно вложенные массивы, то на выходе мы сможем получить таблицу с данными например анкетных данных, каждого работника. Рассмотрим ещё один пример, чисто матрица.

Листинг № 6 - Обход двумерного массива, матрица.

<?php  

// массивы с данными на работников предприятия

$m = array('Александр','Новиков','35','ул. Новоясеневский проспект д. 7','125-89-63');

$s = array('Алексей','Бодров','28','ул. Астраханская д. 45','256-89-63');

$t = array('Николай','Хмельницкий','28','ул. Боровицкая д. 25','100-89-63');

$k = array('Олег','Нестеров','44','ул. Каховка д. 11','330-80-63');

$z = array('Олег','Нестеров','44','ул. Каховка д. 11','330-80-63');

$x = array('Олег','Нестеров','44','ул. Каховка д. 11','330-80-63');

// двумерный массив с данными о сотрудниках

$TH = array($m, $s, $t, $k, $z, $x);

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

$sum = count($TH);

echo "<table border='1' cellpadding='5'>

    <tr><th>Имя</th>

<th>Фамилия</th>

<th>Возраст</th>

<th>Адрес</th>

<th>Телефон</th>

      </tr>";

for($i=0; $i <= $sum; $i++)  

{

  echo "<tr>";

  $sum = count($TH[$i]);

   for($q=0; $q < $sum; $q++)

   {

     echo "<td>  ".$TH[$i][$q]."</td>";    

   }

   echo "</tr>";

}

echo "</table>";

?>


На мониторе увидим следующее:

 

Имя

Фамилия

Возраст

Адрес

Телефон

Александр

Новиков

35

ул. Новоясеневский проспект д. 7

125-89-63

Алексей

Бодров

28

ул. Астраханская д. 45

256-89-63

Николай

Хмельницкий

28

ул. Боровицкая д. 25

100-89-63

Олег

Нестеров

44

ул. Каховка д. 11

330-80-63

Я думаю вы уже догадались, что список значений массива на каждого человека может быть бесконечно большим, не только имя, фамилия, возраст и т.д., можно продолжать в зависимости от надобности. И хотелось бы добавить, что конечно формирование массивов, т.е. занесение данных, происходить должно не вручную.


Лабораторная работа №9

Операторы PHP

Оператором называется нечто, состоящее из одного или более значений (выражений, если говорить на жаргоне программирования), которое можно вычислить как новое значение (таким образом, вся конструкция может рассматриваться как выражение). Отсюда следует, что функции или любые другие конструкции, которые возвращают значение (например, print()) являются операторами, в отличие от всех остальных языковых конструкций (например, echo()), которые ничего не возвращают.

 

Арифметические операторы

Помните школьные основы арифметики? Описанные ниже операторы работают так же.

Пример

Название

Результат

-$a

Отрицание

Смена знака $a.

$a + $b

Сложение

Сумма $a и $b.

$a - $b

Вычитание

Разность $a и $b.

$a * $b

Умножение

Произведение $a и $b.

$a / $b

Деление

Частное от деления $a на $b.

$a % $b

Деление по модулю

Целочисленный остаток от деления $a на $b.

Операция деления ("/") всегда возвращает вещественный тип, даже если оба значения были целочисленными (или строками, которые преобразуются в целые числа).

Возможно также использовать скобки. Приоритет одних математических операций над другими и изменение приоритетов при использовании скобок в арифметических выражениях соответствуют обычным математическим правилам.


Операторы инкремента и декремента

PHP, аналогично C, поддерживает префиксные и постфиксные операторы инкремента и декремента.

Пример

Название

Действие

++$a

Префиксный инкремент

Увеличивает $a на единицу и возвращает значение $a.

$a++

Постфиксный инкремент

Возвращает значение $a, а затем увеличивает $a на единицу.

--$a

Префиксный декремент

Уменьшает $a на единицу и возвращает значение $a.

$a--

Постфиксный декремент

Возвращает значение $a, а затем уменьшает $a на единицу.

Булевые типы не подлежат инкрементированию и декрементированию.

 

Математические функции PHP

Операторы присвоения

Базовый оператор присвоения обозначается как =. На первый взгляд может показаться, что это оператор "равно". На самом деле это не так. В действительности, оператор присвоения означает, что левый операнд получает значение правого выражения, (т.е. устанавливается результирующим значением).

Результатом выполнения оператора присвоения является само присвоенное значение. Таким образом, результат выполнения $a = 3 будет равен 3. Это позволяет использовать конструкции вида:

<?php

 

$a = ($b = 4) + 5; // результат: $a установлена значением 9, переменной $b присвоено 4.

?>

В дополнение к базовому оператору присвоения имеются "комбинированные операторы" для всех бинарных арифметических и строковых операций, которые позволяют использовать некоторое значение в выражении, а затем установить его как результат данного выражения. Например:

<?php

 

$a = 3;

$a += 5; // устанавливает $a значением 8, аналогично записи: $a = $a + 5;

$b = "Hello ";

$b .= "There!"; // устанавливает $b строкой "Hello There!",  как и $b = $b . "There!";

?>

Обратите внимание, что присвоение копирует оригинальную переменную в новую (присвоение по значению), таким образом все последующие изменения одной из переменных на другой никак не отражаются. Начиная с PHP 4, также поддерживается присваивание по ссылке, используя синтаксис $var = &$othervar; 'Присвоение по ссылке' означает, что обе переменные указывают на одни и те же данные и никакого копирования не происходит.

 

Побитовые операторы

Данные операторы предназначены для установки или снятия групп битов целочисленной переменной. Ведь любое число - это просто последовательность бит. Целые числа в PHP - 32-битные.

Для представления одного числа используются 32 бита:

0000 0000 0000 0000 0000 0000 0000 0000 - это ноль;

0000 0000 0000 0000 0000 0000 0000 0001 - это 1;

0000 0000 0000 0000 0000 0000 0000 0010 - это 2;

0000 0000 0000 0000 0000 0000 0000 0011 - это 3;

0000 0000 0000 0000 0000 0000 0000 0100 - это 4;

0000 0000 0000 0000 0000 0000 0000 0101 - это 5;

0000 0000 0000 0000 0000 0000 0000 1111 - это 15;

...

Побитовые операторы:

Пример

Название

Результат

$a & $b

Побитовое 'и'

Устанавливаются только те биты, которые установлены и в $a, и в $b.

$a | $b

Побитовое 'или'

Устанавливаются те биты, которые установлены либо в $a, либо в $b.

$a ^ $b

Исключающее или

Устанавливаются только те биты, которые установлены либо только в $a, либо только в $b

~ $a

Отрицание

Устанавливаются те биты, которые в $a не установлены, и наоборот.

$a << $b

Сдвиг влево

Все биты переменной $a сдвигаются на $b позиций влево (каждая позиция подразумевает 'умножение на 2')

$a >> $b

Сдвиг вправо

Все биты переменной $a сдвигаются на $b позиций вправо (каждая позиция подразумевает 'деление на 2')

Операторы сравнения

Операторы сравнения, как это видно из их названия, позволяют сравнивать между собой два значения. Также вам возможно будет интересно ознакомиться с разделом сравнение типов, в котором приведено большое количество соответствующих примеров.

В PHP разрешается сравнивать только скалярные переменные. Массивы и объекты в PHP сравнивать нельзя.

Операторы сравнения:

Пример

Название

Результат

$a == $b

Равно

TRUE если $a равно $b.

$a === $b

Тождественно равно

TRUE если $a равно $b и имеет тот же тип. (Добавлено в PHP 4)

$a != $b

Не равно

TRUE если $a не равно $b.

$a <> $b

Не равно

TRUE если $a не равно $b.

$a !== $b

Тождественно не равно

TRUE если $a не равно $b или в случае, если они разных типов (Добавлено в PHP 4)

$a < $b

Меньше

TRUE если $a строго меньше $b.

$a > $b

Больше

TRUE если $a строго больше $b.

$a <= $b

Меньше или равно

TRUE если $a is меньше или равно $b.

$a >= $b

Больше или равно

TRUE если $a больше или равно $b.

 

Логические операторы

Приведем таблицу логических операторов PHP:

Пример

Название

Результат

$a and $b

Логическое 'и'

TRUE если и $a, и $b TRUE.

$a or $b

Логическое 'или'

TRUE если или $a, или $b TRUE.

$a xor $b

Исключающее 'или'

TRUE если $a, или $b TRUE, но не оба.

! $a

Отрицание

TRUE если $a не TRUE.

$a && $b

Логическое 'и'

TRUE если и $a, и $b TRUE.

$a || $b

Логическое 'или'

TRUE если или $a, или $b TRUE.

Операторы инкремента (++) и декремента (--) не работают с логическими переменными.

 


Приоритеты операторов PHP

Операторы с более высоким уровнем приоритета выполняются в первую очередь:

Приоритет

Оператор

Порядок выполнения

13

(постфикс)++ (постфикс)--

слева направо

12

++(префикс) --(префикс)

справа налево

11

* / %

слева направо

10

+ -

слева направо

9

<< >>

слева направо

8

< <= > >=

слева направо

7

== !=

слева направо

6

&

слева направо

5

^

слева направо

4

|

слева направо

3

&&

слева направо

2

||

слева направо

1

= += -= *= /= %= >>= <<== &= ^= |=

справа налево

В любом случае, если вы сомневаетесь, или боитесь ошибиться, используйте скобки.

 

Строковые операторы

В PHP есть два оператора для работы со строками. Первый - оператор конкатенации ('.'), который возвращает объединение левого и правого аргумента. Второй - оператор присвоения с конкатенацией, который присоединяет правый аргумент к левому. Приведем конкретный пример:

 

<?php

$a = "Hello ";

$b = $a . "World!"; // $b содержит строку "Hello World!"

 

$a = "Hello ";

$a .= "World!";     // $a содержит строку "Hello World!"

?>


Лабораторная работа №10

Метод GET и метод POST

Метод GET в PHP.

Начинаем большую тему. Представление внешних переменных.

Откуда берутся внешние, так сказать переменные, и для чего именно они внешние. Определение этому следующее. Все переменные приходящие в скрипт от браузера, в данном случаи через URL, или с сервера являются внешними переменными. Разберём как это понять, приходящие в скрипт.

Скрипт - любая программа написанная вами, для обработки этих самых переменных. Так как язык PHP серверный язык программирования, следовательно все скрипты находятся на сервере, т.е. на вашем сайте в папке и ни куда не отправляются (например браузеру). Скрипт выполняет запрос браузера на представление страницы, он просто собирает, формирует страницу HTML кода и отправляет её в готовом виде пользователю, который запросил её с помощью своего браузера. Это то, что касается обработчика скриптов. Теперь посмотрим как пользователь с помощью своего браузера, причём не важно какого (Internet Explorer, Firefox, Opera, Chrom), отправляет запрос. В данном случаи GET-запрос.

GET - это название запроса, который отправляется на сервер скрипту с помощью браузера открыто, через URL, адресную строку.

Если в адресной строке вы видите знак амперсанды (&) и знак вопрос (?), можно считать, что этот узел работает на PHP, и ему в данный момент отправлены переменные и их значения. Выглядеть это может примерно так:

http://lphp.ru/index.php?page=4&id_artpage=43

 

Давайте разберёмся, что отправит пользователь, используя метод GET, в строке выше, серверу. И что он хочет получить в результате от сервера. Слева направо.

http:// - префикс основного протокол передачи данных в web (HTTP)

lphp.ru - домен в котором находится сервер

index.php - имя файла, который будет обрабатывать запрос, то есть кому собственно отправлен GET-запрос

? - разделитель, после которого перечисляются переменные со значениями, которые нужны скрипту обработчику для формирования ответной страницы

page - переменная или имя переменной

= - оператор присваивает значения переменной

4 - значение переменной

& - разделитель в строке запроса, между парами (переменная=значение&переменная=значение) и т.д.

 

Выше мы рассмотрели схему построения запроса используя метод GET. В зависимости от того что вы заложили в понятие каждой переменной её значения могут быть разными. Это не обязательно цифры, это могут быть строки, слова. Напишем реальный пример передачи значения переменной page скрипту обработчику. При этом скрипт будет должен вывести переданное ему значение на монитор - вот такая простая задачка.

Листинг № 1 - Передача значения переменной методом GET.

<form>

  <label>

    <input type="text" name="page" id="textfield">

  </label>

  <label>

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

  </label>

</form>

<?php  

 echo $_GET['page'];

?>

В листинге №1 показан пример передачи значения обработчику находящемуся в том же файле, это удобно когда скрипт не большой. Чаще всего передача происходит между страницами и здесь нужно разделить форму отправки значений и код приёма (обработчик). Ниже показан пример из двух файлов, форма отправки находится в файле forma.php, а обработчик в файле add.php. Файлы вы можете конечно называть как вам угодно, лишь придерживаясь правильности именования файлов и правильно указывайте путь к обработчику. Первое условие правильности именования - имя должно быть в английской раскладке.

Листинг № 2 - Метод GET. Передача данных между страницами. Файл forma.php

<form method="GET" action="add.php">

  <label>

    <input type="text" name="page" id="textfield">

  </label>

  <label>

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

  </label>

</form>

Листинг № 3 - Файл add.php обработчик запроса методом GET.

<?php  

 echo $_GET['page'];

?>

Как мы видим изменилась только форма отправки значения формы page.

В первой строке добавился метод которым мы отправляем значения, т.е. method="GET" и добавился адрес обработчика в данном случаи только имя файла (action="add.php"), но можно так же указывать полный или относительный путь до обработчика. Принято на сайтах указывать относительный путь, в силу того что при переносе приложения на другой сервер не менять потом пути.

 

Метод POST

И так что мы имеем, главное отличия метода POST от метода GET это то, что он скрывает все передаваемые им переменные и их значения, в своём теле. Это главное отличие и оно важно при создании приложений. При таком подходе скрыта реализация приложения, не видны переменные, которые вы используете в работе данной программы. Нет возможности подменить значения переменной в URL и тем самым отправить на сервер (злоумышленником), заведомо не ликвидные данные, что в свою очередь может привести к сбою в работе скрипта, или полной остановки и потери информации.

Второе существенное отличие метода POST от метода GET - вся передаваемая информация, как известно имеет свой объём (вес). Так вот в GET этот объём ограничен 8 КБ. Метод POST таких ограничений не имеет.

При разработки и отладки приложений, чаще используют метод GET. При завершении и выпуске приложения в свет, лучше изменить представление на метод POST, в целях безопасности и неограниченности объёма (без фантазий) передачи информации.

Листинг № 1 - Пример передачи данных между страницами - метод POST.

<form name="form1" method="post" action="post.php">

  Введите текст:<br />

<textarea name="text" cols="80" rows="10"></textarea>

 

<br />

<br />

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

 

</form>

В примере выше представлена форма отправки данных используя метод POST. Это можно увидеть в открывающем теги form , атрибут method="post". Написание не имеет особого значения, нижний регистр букв используется или верхний. Что такое регистр, можно узнать из урока Регистр букв. Если не прописать метод, то браузер по умолчанию будет использовать метод GET.

Ещё важный аргумент тега form1, это аргумент action="post.php". Action - служит для указания пути до обработчика, т.е. куда будут отправлены данные вписанные в эту форму. Имеющую имя в данном скрипте form1, но для нас сейчас это не имеет ни какого значения. Хочу лишь сказать, что именование всех объектов web-страницы в PHP, осуществляется путём присвоения атрибуту name имени. По сути это именование переменной. Форма в которую вы вводите данные есть переменная и у неё должно быть имя, для того чтоб можно было с помощью скрипта обращаться к ней.

Разберём теперь обработчик, который в данном примере, выполняет функцию приёма данных и вывода их на монитор. Делается это с помощью глобального массива - так называются группа переменных в PHP.

При использовании метода POST, правильное написание глобального массива, выглядит так:

  $_POST[]

 

В примере выше представлен глобального массива POST - это мы можем видеть по его имени, после знака подчёркивания. В квадратных скобках, в данном случаи нет значения, поэтому массив можно считать пустым. При отправки данных методом POST всегда все отправленные переменные и их значения, будут содержаться в этом глобальном массиве ($_POST[]). И только при обращении к нему вы сможете получить отправленные данные с одной страницы на другую.

Листинг № 2 - Выводим данные на монитор метод POST. Файл post.php

<?php  

  echo $_POST['text'];

?>

Листинг №2 показывает обработчик формы. В глобальном массиве POST, в квадратных скобках мы видим имя переменной - именно так скрипт понимает, что нужно выводить на монитор $_POST['text']. В первом листинге мы именовали форму, назвав переменную text (name="text"). Форма содержащая текст получила имя text.

Чтобы вывести на монитор отправленные данные, достаточно просто прописать имя переменной в квадратных скобках глобального массива POST.


Лабораторная работа №11

Создаем собственный сайт на PHP

Создаем самый простой динамический сайт на php!

Динамический сайт можно сравнить с конструктором, а именно разделить его на основные блоки (шапка сайта, левый блок с навигацией, правый блок с рекламной информацией, футер сайта  и т.д.), и подключать их в том месте нашего сайта, в котором они нам понадобятся!

Итак, для начала, давайте создадим самый простой шаблон (каркас) сайта, который будет состоять из 3-х рядов и 3-х столбцов. Для этого Вам необходимо создать php-страницу и добавить туда следующий код:

<table  width="100%" border="0" cellspacing="5"  cellpadding="0">

  <tr>

  <td>&nbsp;</td>

  <td>&nbsp;</td>

  <td>&nbsp;</td>

  </tr>

  <tr>

  <td>&nbsp;</td>

  <td>&nbsp;</td>

  <td>&nbsp;</td>

  </tr>

  <tr>

  <td>&nbsp;</td>

  <td>&nbsp;</td>

  <td>&nbsp;</td>

  </tr>

</table>

На следующем шаге нам необходимо объединить 3 верхних столбца в одну ячейку! Там будет размещена "шапка сайта" Для этого используем атрибут colspan="3". Тоже самое проделаем и с самими нижними столбцами! Это будет у нас футер сайта. У вас должно получиться следующее:

<table width="100%"  border="0" cellspacing="5" cellpadding="0">

  <tr>

  <td colspan="3"> Шапка сайта </td>

  </tr>

  <tr>

  <td>Левый блок с навигацией  по сайту</td>

  <td>Контент сайта</td>

  <td>Правый блок с рекламной  информацией</td>

  </tr>

  <tr>

  <td colspan="3"> Футер сайта</td>

  </tr>

  </table>

        

На следующем этапе приводим наш сайт к единому шаблону. Я добавлю к каждому блоку нашего сайта по таблице. У вас должно получиться следующее:

<table  width="100%" border="0" cellspacing="5" cellpadding="0">

<tr>

<td colspan="3">

 

<!--Шапка сайта -->

<table width="100%" bgcolor="#0000FF" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td><h1  align="center">Загаловок сайта</h1>

</td>

</tr>

</table>

<!--/Шапка сайта -->

 

</td>

</tr>

<tr>

<td width="20%"  valign="top">

 

<!—Левый блок, с  навигацией по сайту -->

<table  width="190" border="1" align="center" cellpadding="0"

cellspacing="0" bordercolor="#000000">

<tr>

<td bgcolor="#0000CC">

<div align="center"><b>Меню</b></div>

</td>

</tr>

<tr>

<td>

<div>

<ul>

<li  class="m"><a rel="nofollow ugc" target="_blank" href="#">Главная</a></li>

<li  class="m"><a rel="nofollow ugc" target="_blank" href="#">Статьи</a></li>

<li  class="m"><a rel="nofollow ugc" target="_blank" href="#">Книги</a></li>

<li  class="m"><a rel="nofollow ugc" target="_blank" href="#">О себе</a></li>

<li  class="m"><a rel="nofollow ugc" target="_blank" href="#">Контакты</a></li>

</ul>

</div>

</td>

</tr>

</table>

<!--/ Левый блок, с навигацией по сайту -->

 

</td>

<td valign="top">

 

<!--Контент сайта -->

<table width="100%" border="1" align="center" cellpadding="0"

cellspacing="0" bordercolor="#000000">

<tr>

<td bgcolor="#0000CC">

<div align="center"><b>Гланая</b></div></td>

</tr>

<tr>

<td  style="padding:10px"><p>Приветствую, мой дорогой

посетитель!</p>

<p>Если Вы новичок инфо-бизнеса и только начинаете свои

первые  шаги,то Вы попали по адресу! На данном сайте Вы найдете

бесплатные электронные курсы, статьи, электронные книги и советы

по организации, раскрутке и ведению собственного бизнеса в

Интернете.</p>

<p>Приятного Вам изучения!</p>

</td>

</tr>

</table>

<!--/Контент  сайта -->

 

</td>

<td  width="20%" valign="top">

 

<!--Правый  блок с рекламной информацией -->

<table width="100%" border="1" cellpadding="0" cellspacing="0"

bordercolor="#000000">

<tr>

<td bgcolor="#0000CC">

<div align="center"><b>Реклама</b></div>

</td>

</tr>

<tr>

<td>Ваша реклама</td>

</tr>

</table>

<!--/Правый  блок с рекламной информацией -->

 

</td>

</tr>

<tr>

<td colspan="3">

 

<!--Футер сайта -->

<div  align="center">Разрешается  републикация материалов

сайта с обязательным указанием ссылки на<br>

автора  </div>

<!--/футер  сайта -->

 

</td>

</tr>

</table>

 

Итак, теперь когда наш шаблон сайта готов, разделим его на основные блоки и сохраним их в отдельные файлы, с расширением PHP.

Итак, создадим отдельный файл header.php. Туда необходимо вырезать и вставить следующий фрагмент нашего шаблона:

<!--Шапка сайта -->

  <table width="100%"  bgcolor="#0000FF" border="0"

  cellspacing="0" cellpadding="0">

  <tr>

  <td><h1 align="center">Загаловок сайта</h1>

  </td>

  </tr>

  </table>

<!--/Шапка  сайта -->

Далее создадим файл с навигацией по сайту! Назовем его left_block.php. В него необходимо вставить следующий код нашего шаблона:

<!--Меню сайта -->

<table  width="190" border="1" align="center"  cellpadding="0"

cellspacing="0" bordercolor="#000000">

<tr>

<td bgcolor="#0000CC">

<div align="center"><b>Меню</b></div>

</td>

</tr>

<tr>

<td>

<div>

<ul>

<li><a  rel="nofollow ugc" target="_blank" href="#">Главная</a></li>

<li><a  rel="nofollow ugc" target="_blank" href="#">Статьи</a></li>

<li><a  rel="nofollow ugc" target="_blank" href="#">Книги</a></li>

<li><a  rel="nofollow ugc" target="_blank" href="#">О себе</a></li>

<li><a  rel="nofollow ugc" target="_blank" href="#">Контакты</a></li>

</ul>

</div>

</td>

</tr>

</table>

<!--/Меню сайта -->

Далее создадим файл, который будет содержать правый блок, с рекламной информацией. Назовем его right_block.php. В него необходимо вставить следующий код нашего шаблона:

<!--Правый  блок с рекламной информацией -->

 <table  width="100%" border="1" cellpadding="0"  cellspacing="0"

  bordercolor="#000000">

  <tr>

  <td  bgcolor="#0000CC">

  <div align="center"><b>Реклама</b></div>

  </td>

  </tr>

  <tr>

  <td>&nbsp;</td>

  </tr>

  </table>

<!--/Правый  блок с рекламной информацией -->

 

Последним блоком, который мы вынесем в отдельный файл, будет блок – футер сайта. Создадим новый php-файл и назовем его footer.php.  В него необходимо вставить следующий код нашего шаблона:

<!--Футер сайта -->

  <div align="center">Разрешается републикация материалов сайта с

  обязательным  указанием ссылки на<br>

  автора материала  (указание автора, его сайта) и ссылки

  cледующего содержания:<br>

  &quot;http://biznesguide.ru. Новичку Инфо-Бизнеса.

  От простого к  сложному.&quot;

  </div>

<!--/футер  сайта -->

 

Итак, все блоки вынесены в отдельные файлы. Теперь их необходимо подключить к основному шаблону (каркасу) нашего сайта. Делается это при помощи команды include();

Конструкция include предназначена для включения файлов в код сценария PHP во время исполнения сценария PHP.

<?php include("header.php");?>

Где: header.php – имя подключаемого файла.

Как видите, для того, чтобы добавить php-код необходимо прописать <?php, а для того, чтобы закрыть php-код - ?>.  

Подключим все наши созданные файлы к нашему основному каркасу.

У Вас должно получиться следующее:

<table width="100%" border="0" cellpadding="0" cellspacing="5"

bordercolor="#000000">

  <tr>

  <td colspan="3">

 

<?php  include("header.php");?>

  </td>

  </tr>

  <tr>

  <td width="20%"  valign="top">

<?php  include("left_block.php");?>

  </td>

  <td  valign="top">

  <table width="100%" border="1" align="center" cellpadding="0" 

  cellspacing="0" bordercolor="#000000">

  <tr>

  <td  bgcolor="#0000CC">

  <div align="center"><b>Гланая</b></div>

  </td>

  </tr>

  <tr><td  style="padding:10px"><p>Приветствую, мой дорогой 

  посетитель!</p>

  <p>Если Вы новичок инфо-бизнеса и только начинаете свои

  первые шаги,то Вы попали по адресу! На данном сайте Вы найдете

  бесплатные электронные курсы, статьи,электронные книги и советы

  по организации, раскрутке и ведению собственного бизнеса в 

  Интернете.</p>

  <p>Приятного Вам изучения!</p>

  </td>

  </tr>

  </table>

 

  </td>

  <td width="20%"  valign="top">

 

<?php  include("right_block.php");?>

 

  </td>

  </tr>

  <tr>

  <td colspan="3"  bgcolor="#0000FF">

 

<?php include("footer.php");?>

 

  </td>

  </tr>

  </table>

Ну вот собственно и все! Мы создали самый простой динамический php-сайт, состоящий из нескольких блоков. Теперь если Вы захотите изменить шапку своего сайта, то просто откройте файл header.php, отредактируйте его и сохраните. Эти изменения автоматически сохраняться на всех страницах вашего сайта, где будет подключен этот файл.

Естественно это лишь пример, а не окончательный дизайн сайта! Над ним надо еще много поработать, чтобы получился красивый сайт.


Лабораторная работа №12

Дорабатываем наш сайт.

Составляем техническое задание (ТЗ) по доработке сайта:

доработка сайта:

1) в подвал сайта (нижний блок сайта) выводим информацию

Ваша Фамилия, Имя, Отчество. Сейчас – %блок с временем 2011г.% (Как это сделать смотри далее)

2) Создать 3 баннера (.jpg), произвольного размера, к примеру, 200x300px.

Данные баннеры вывести в правый блок «реклама»

3) Реализовать случайный вывод одного из трех баннеров.

4) На обложку сайта выводим блок «Случайный цитата философа». Место для блока выбирайте самостоятельно. В данном блоке должен отображаться одна «цитата» из списка.

5) организация страницы с контактами

6) рисуем логотип и вставляем в шапку сайта.

7) перелинковать все страницы сайта между собой (инклуд левый блок с ссылками. Как делать ссылки – смотри методичку HTML)

Теперь подробнее, как это реализовать.

1) ФИО вписываем вручную в файл footer.

Затем необходимо вывести блок времени. Пример функции в приложении 1 (конец методички)

2) Баннер рисуем через графическую программу. Команда для выставления изображения

<img src=”путь к изображению/имя картинки.jpg”>

Подробнее описано в методичке HTML

3) Случайный вывод организуем через условие IF. Код может быть примерно таким:

Если (%случайная переменная% == 1) {отобразить один баннер}

Если (%случайная переменная% == 2) {отобразить второй баннер}

Если (%случайная переменная% == 3) {отобразить третий баннер}

 

Разумеется, данный код нужно составить на языке PHP (смотри конструкцию if в данной методичке)

Случайную переменную можно получить по средствам функции

rand(1,3) – данная функция отдаст число от одного, до трех

Подробнее смотри в приложении 3 (конец методички)

4) Блок с цитатами философов организуем подобным образом, каким мы реализовали случайный вывод баннера. Блок можно ограничить таблицей с бордюром.

Цитаты в приложении 1.

5) Блок контактов, как и другие страницы в нашем сайте организуем подобным образом:

Копируем основную страницу сайта, в которой содержится «контент» обложки сайта и в которой прописаны инклуды на левый  блок, правый, низ, верх.

Переименовываем файл (к примеру это файл index.php) в файл contact.php и заменяем содержимое файла (контент файла), на информацию с контактами.

И не забудьте перелинковать эту страницу в левом блоке навигации.

6) Логотип рисуем в графической программе и выставляем в шапку сайта.

 


Приложение 1.

Функция времени

Данная функция, как и многие другие, взята с сайта php.net

Либо русский вариант php.su

Я Вам рекомендую так же использовать данный справочник

 

date

(PHP 3, PHP 4, PHP 5)

date -- Форматирует системную дату/время

Описание

string date ( string format [, int timestamp] )

Возвращает время, отформатированное в соответствии с аргументом format, используя метку времени, заданную аргументом timestamp или текущее системное время, если timestamp не задан. Другими словами, timestamp является необязательным и по умолчанию равен значению, возвращаемому функцией time().

Замечание: Для большинства систем допустимыми являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT. (Эти даты соответствуют минимальному и максимальному значению 32-битового целого со знаком). Для Windows допустимы даты с 01-01-1970 по 19-01-2038.

Замечание: Для получения метки времени из строкового представления даты можно использовать функцию strtotime(). Кроме того, некоторые базы данных имеют собственные функции для преобразования внутреннего представления даты в метку времени (напрмер, функция MySQL UNIX_TIMESTAMP).


Таблица 1. В параметре format распознаются следующие символы

Символ в строке format

Описание

Пример возвращаемого значения

a

Ante meridiem или Post meridiem в нижнем регистре

am или pm

A

Ante meridiem или Post meridiem в верхнем регистре

AM или PM

B

Время в стадарте Swatch Internet

От 000 до 999

c

Дата в формате ISO 8601 (добавлено в PHP 5)

2004-02-12T15:19:21+00:00

d

День месяца, 2 цифры с ведущими нулями

от 01 до 31

D

Сокращенное наименование дня недели, 3 символа

от Mon до Sun

F

Полное наименование месяца, например January или March

от January до December

g

Часы в 12-часовом формате без ведущих нулей

От 1 до 12

G

Часы в 24-часовом формате без ведущих нулей

От 0 до 23

h

Часы в 12-часовом формате с ведущими нулями

От 01 до 12

H

Часы в 24-часовом формате с ведущими нулями

От 00 до 23

i

Минуты с ведущими нулями

00 to 59

I (заглавная i)

Признак летнего времени

1, если дата соответствует летнему времени, иначе 0 otherwise.

j

День месяца без ведущих нулей

От 1 до 31

l (строчная 'L')

Полное наименование дня недели

От Sunday до Saturday

L

Признак високосного года

1, если год високосный, иначе 0.

m

Порядковый номер месяца с ведущими нулями

От 01 до 12

M

Сокращенное наименование месяца, 3 символа

От Jan до Dec

n

Порядковый номер месяца без ведущих нулей

От 1 до 12

O

Разница с временем по Гринвичу в часах

Например: +0200

r

Дата в формате RFC 2822

Например: Thu, 21 Dec 2000 16:01:07 +0200

s

Секунды с ведущими нулями

От 00 до 59

S

Английский суффикс порядкового числительного дня месяца, 2 символа

st, nd, rd или th. Применяется совместно с j

t

Количество дней в месяце

От 28 до 31

T

Временная зона на сервере

Примеры: EST, MDT ...

U

Количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT)

См. также time()

w

Порядковый номер дня недели

От 0 (воскресенье) до 6 (суббота)

W

Порядковый номер недели года по ISO-8601, первый день недели - понедельник (добавлено в PHP 4.1.0)

Например: 42 (42-я неделя года)

Y

Порядковый номер года, 4 цифры

Примеры: 1999, 2003

y

Номер года, 2 цифры

Примеры: 99, 03

z

Порядковый номер дня в году (нумерация с 0)

От 0 до 365

Z

Смещение временной зоны в секундах. Для временных зон западнее UTC это отрицательное число, восточнее UTC - положительное.

От -43200 до 43200

Любые другие символы, встреченные в строке format, будут выведены в результирующую строку без изменений. Z всегда возвращает 0 при использовании gmdate().

Пример 1. Примеры использования функции date()

<?php

// вывод дня недели, например Wednesday

echo date("l");

 

// вывод даты в формате: Wednesday 15th of January 2003 05:51:38 AM

echo date("l dS of F Y h:i:s A");

 

// вывод: July 1, 2000 is on a Saturday

echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

?>

Избежать распознавания символа как форматирующего можно, если экранировать этот символ с помощью \ Если в сочетании с \ символ являееся специальным (например, \t), следует добавлять еще один \.

Пример 2. Экранирование символов в функции date()

<?php

// вывод: Wednesday the 15th

echo date("l \\t\h\e jS");

?>

Функции date() и mktime() для вывода прошедших и будущих дат.

Пример 3. date() и mktime() example

<?php

$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));

$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));

$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);

?>

 

Замечание: Этот метод более надежен, чем вычитание и прибавление секунд к метке времени, так как mktime() учитывает любые неоднозначности в датах (переход на летнее/зимнее время и др.).

Приведем еще несколько примеров использования функции date(). Помните, что следует экранировать все символы, которые вы хотите видеть в результате работы функции без изменений. Это относится и к символам, которые в текущей версии PHP не распознаются как специальные, так как этим символам может быть назначено значение в следующих версиях. Используйте одинарные кавычки для предотвращения преобразования \n в перевод строки.

Пример 4. Форматирование с использованием date()

<?php

// Предположим, что текущая дата March 10th, 2001, 5:16:18 pm

 

$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm

$today = date("m.d.y");     // 03.10.01

$today = date("j, n, Y");     // 10, 3, 2001

$today = date("Ymd");        // 20010310

$today = date('h-i-s, j-m-y, it is w Day z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01

$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // It is the 10th day.

$today = date("D M j G:i:s T Y");  // Sat Mar 10 15:16:08 MST 2001

$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:17 m is month

$today = date("H:i:s");              // 17:16:17

?>

 


Приложение 2.

Функция случайного числа

 

Данная функция, как и многие другие, взята с сайта php.net

Либо русский вариант php.su

Я Вам рекомендую так же использовать данный справочник

 

rand

(PHP 3, PHP 4, PHP 5)

rand -- Генерирует случайное число

Описание

int rand ( [int min, int max] )

При вызове без параметров min и max, возвращает псевдослучайное целое в диапазоне от 0 до RAND_MAX. Например, если вам нужно случайное число между 5 и 15 (включительно), вызовите rand (5, 15).

Пример 1. Пример

<?php

echo rand() . "\n";

echo rand() . "\n";

 

echo rand(5, 15);

?>

Пример выше выведет что-то наподобие этого:

7771

 

22264

 

11

Замечание: На некоторых платформах (таких как Windows) RAND_MAX всего лишь 32768. Чтобы расширить диапазон, используйте параметры min и max, или обратитесь к функции mt_rand().

Замечание: Начиная с PHP 4.2.0, больше нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку теперь это происходит автоматически.

Замечание: В версиях до 3.0.7 max определяло диапазон генерирования. Например, чтобы получить число от 5 до 15, нужно было вызвать rand (5, 11).

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Основы языка PHP""

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Культуролог-аниматор

Получите профессию

Менеджер по туризму

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Краткое описание документа:

Данное методическое пособие позволит Вам изучить основы языка PHP и создать динамический сайт

Пособие содержит справочно-лабораторный материал, который разбит на 12 лабораторных работ.

Рассмотрены следующие моменты:

- Основные отличия динамического сайта (php) от статического (html)

- Учимся работать с WEB сервером

- Создание простейшего скрипта

- PHP в HTML-документах

- Комментарии в PHP-скриптах

- Переменные в PHP

- Типы данных

- Конструкции языка PHP

- Циклы в PHP

- Одномерные и двумерные массивы

- Операторы PHP

- Метод GET и метод POST

- Создаем собственный сайт на PHP

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 671 641 материал в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 19.01.2020 1507
    • DOCX 464.5 кбайт
    • 74 скачивания
    • Рейтинг: 5 из 5
    • Оцените материал:
  • Настоящий материал опубликован пользователем Карманова Марина Михайловна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Карманова Марина Михайловна
    Карманова Марина Михайловна
    • На сайте: 7 лет
    • Подписчики: 5
    • Всего просмотров: 408268
    • Всего материалов: 106

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Копирайтер

Копирайтер

500/1000 ч.

Подать заявку О курсе

Курс повышения квалификации

Влияние современных танцев на самооценку и развитие личности

36 ч. — 144 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Этот курс уже прошли 80 человек

Курс повышения квалификации

Методика и организация образовательной деятельности дополнительного образования

36/72/108 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 31 человек из 19 регионов
  • Этот курс уже прошли 352 человека

Курс повышения квалификации

Основы блогинга: специфика преподавания курса как способа развития коммуникационных навыков школьников

36 ч. — 144 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 25 человек из 14 регионов
  • Этот курс уже прошли 95 человек

Мини-курс

Управление проектами и стоимостная оценка в современном бизнесе

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Самосовершенствование: шаги к личному росту и эмоциональному благополучию

10 ч.

1180 руб. 590 руб.
Подать заявку О курсе
  • Сейчас обучается 258 человек из 61 региона
  • Этот курс уже прошли 80 человек

Мини-курс

Работа с детьми с особыми образовательными потребностями

10 ч.

1180 руб. 590 руб.
Подать заявку О курсе
  • Сейчас обучается 347 человек из 63 регионов
  • Этот курс уже прошли 186 человек