Пиши Дома Нужные Работы

Обратная связь

Для чего это можно использовать?

Что такое PHP

Первые вопросы, возникающие при изучении РНР: Что такое PHP и как это работает?

Именно этими вопросами мы и займёмся в данном уроке. Очень важно разобраться с этими вопросами, прежде чем начинать создавать собственные РНР-страницы. Понимание этого значительно ускорит изучение.

Итак, начнём!

Что такое PHP?

PHP это первоначально аббревиатура для Personal Home Pages (Личные Домашние Страницы), но в настоящее время это рекурсивный акроним для PHP: Hypertext Preprocessor (Гипертекстовый Препроцессор).

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

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

Как работает PHP?

Лучший способ объяснить, как работает PHP - сравнить его со стандартным HTML. Предположим, вы печатаете адрес HTML-документа (например, http://www.mysite.com/page.htm) в адресной строке браузера. При этом вы запрашиваете HTML-страницу. Вот пример:

Вы видите, что сервер просто высылает HTML-файл клиенту. Но если вы напечатаете http://www.mysite.com/page.php - то есть запроситеPHP-страницу - сервер начинает работать:

Сервер сначала читает PHP-файл и смотрит, нет ли задач, которые необходимо выполнить. Только после выполнения серверной работы результат отсылается клиенту. Важно понимать, что клиент видит только результат работы сервера, а не реальные инструкции.

Это означает, что, если вы нажимаете в браузере "view source/просмотреть исходный код" PHP-страницы, вы увидите не PHP-коды, а лишь тэги HTML. То есть вы не сможете с помощью "view source" увидеть, как создаётся PHP-страница. Необходимо изучать РНР другими способами, например, читая данный учебник.



Вы этой книге вы научитесь создавать команды для сервера!

Итак, первое, что нужно ... это сервер! Но не волнуйтесь - вам не нужно покупать новый компьютер. Просто установите определённое программное обеспечение, которое заставит его работать в качестве сервера. Кроме того, понадобится вэб-сайт на сервере-хосте, поддерживающий работу с PHP. Ну и, наконец, вы должны быть онлайн, когда кодируете.

 

 

Серверы

PHP это серверная/server-side технология. Следовательно, для работы РНР вам нужен сервер. Но вам для этого не придётся дополнительно раскошеливаться.

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

Вариант 1: Вб-сайт на сервере-хосте

Вы можете иметь сайт на сервере-хосте, поддерживающем РНР.

  • Проверьте, поддерживает ли ваш хост-сервер работу с РНР.
  • Если у вас ещё нет вэб-сайта на сервере-хосте, можете создать бесплатную учётную запись на 000webhost.com, который поддерживает PHP.

Вариант 2: Установить PHP на ваш компьютер

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

  • Windows Installation Guide
  • Mac Installation Guide
  • Linux Installation Guide

Вариант 3: XAMPP

XAMPP это программа упрощает для нас, простых смертных, работу с РНР прямо на нашем компе без необходимости устанавки.

  • Как установить XAMPP

Ваша первая РНР-страница

PHP-скрипты

PHP Documentation Group выпустила подробную документацию . По всему данному учебнику даётся множество ссылок на эту документацию. Цель - чтобы вы привыкли искать ответы на ваши вопросы. PHP настолько обширен, что его невозможно охватить в этом учебнике. Но PHP достаточно прост! Более того, язык PHP часто весьма похож на обычный английский.

Давайте начнём конструирование вашей первой РНР-страницы.

 

HTML-код должен выглядеть примерно так:

 

<html>

<head>

<title>Моя первая PHP-страница</title>

 

</head>

<body>

 

</body>

</html>

 

Как вы помните, вероятно, из первого урока, PHP даёт команды серверу. Так что давайте напишем команду серверу.

Сначала мы должны указать серверу, где код PHP начинается и заканчивается. В PHP тэги <?php и ?> используются для обозначения начала и конца блоков РНР-кода, которые сервер должен исполнять (на большинстве серверов достаточно использовать <? в качестве стартового тэга, но <?php будет более корректно при первом использовании PHP.)

Попробуем теперь добавить такой блок кода в ваш HTML-код:

 

<html>

<head>

<title>Моя первая PHP-страница</title>

</head>

<body>

 

<?php

 

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

 

?>

 

</body>

</html>

 

 

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

 

Но интересно будет просмотреть HTML-код в браузере (выбрав "view source"):

PHP-коды исчезли! Из первого урока, вы помните, что только сервер может видеть PHP-коды - клиент (программа-браузер) видит только результат!

Посмотрим, что происходит. Мы просим сервер написать <h1> Hello World!</h1>. Говоря более техническим языком, мы используем строковую функцию echo для написания клиенту специализированной строки, где точка с запятой обозначают конец команды. Но не волнуйтесь! В этом учебнике мы постараемся использовать техническую терминологию по-минимуму.

Наш первый пример, очевидно не особо впечатляющ. Но не спешите! Теперь будет всё интереснее. Рассмотрим другой пример.

Пример: Now!

Заставим сервер написать что-нибудь ещё. Мы можем, например, попросить его вывести текущие дату и время:

 

<html>

<head>

<title>Моя первая PHP-страница</title>

 

</head>

<body>

 

<?php

 

echo date("r");

 

?>

 

</body>

</html>

 

 

В браузере мы увидим:

Соответствующий HTML-код:

Стало уже немного интереснее, не правда ли?

Сервер отображает дату и время при отображении РНР-страницы. Заметьте, что при обновлении страницы в браузере, отобразится новое время. Сервер выводит текущие дату и время всякий раз при отправке страницы клиенту.

Отметим также, что HTML-содержит только дату и время, но не РНР-коды. Следовательно, этот пример не зависит от того, какой браузер используется. В реальности вся функциональность выполняется серверными технологиями и всегда работает во всех браузерах!

И вновь отметим точку с запятой в конце строки кода. Этот разделитель очень важен - при его отсутствии скрипт работать не будет.

В этом примере мы использовали date, функцию, которая возвращает текущие дату и время сервера.

Попробуем расширить пример, записав строку/string и функцию/function, разделив их символом "." (точка) - примерно так:

 

<html>

<head>

<title>Мой первый PHP-документ</title>

</head>

<body>

 

<?php

 

echo "<p>Текущие дата и время: " . date("r") . "</p>";

 

?>

 

</body>

</html>

 

 

В браузере это выглядит так:

А вот соответствующих код HTML:

 

 

Работа с датой и временем

Функции даты и времени

В PHP имеется ряд функций для работы с датами и временем. В этом уроке разберём наиболее важную из этих функций: date.

Принимая различные параметры, функция date может возвращать дату/время в различных форматах. Вот наиболее часто используемые параметры:

date("y")

Возвращает текущий год даты - на сегодня возвращает: 14

date("m")

Возвращает текущий месяц даты - на сегодня возвращает: 11

date("F")

Возвращает текущий месяц даты - на сегодня возвращает: November

date("d")

Возвращает текущее число месяца даты - на сегодня возвращает: 13

date("l")

Возвращает название для недели даты - на сегодня возвращает: Thursday

date("w")

Возвращает текущий день недели даты - на сегодня возвращает: 4

date("H")

Возвращает текущий час - в данное время возвращает: 16

date("i")

Возвращает текущую минуту - в данное время возвращает: 42

date("s")

Возвращает текущую секунду - в данное время возвращает: 10

Следующий пример иллюстрирует использование функции date:

 

<html>

<head>

<title>Время и дата</title>

 

</head>

<body>

 

<?php

 

echo "<p>Сегодня " . date("l") . "</p>";

 

?>

 

</body>

</html>

Текущее время: 1415893330

Теперь держитесь крепче... немного притормозим! Функция time() возвращает текущее время в виде количества секунд, прошедших после 1 января 1970 года, 12:00 PM, GMT.

<html> <head> <title>Время и дата</title> </head> <body> <?php echo "<p>Сейчас ровно " . time() . " секунд после January 1, 1970, 12:00 PM, GMT </ p> "; ?> </body> </html>

Отображение в виде количества секунд после January 1, 1970, 12:00 PM GMT называется "timestamp/штамп времени" (UNIX timestamp), который весьма употребителен при работе с датой/временем будущего или прошлого.

По умолчанию функция date использует текущий timestamp (т. е. текущее значение time()). но с помощью дополнительного параметра вы можете специфицировать другой штамп времени и таким образом работать с прошлым или будущим. В следующем примере мы установим timestamp на 0 секунд после January 1, 1970 12:00 PM, GMT. Тогда можно узнать, каким днём недели было 1 января 1970 года.

<html> <head> <title>Время и дата</title> </head> <body> <?php echo "<p>1 января 1970 года - " . date("l",0) . "</p>"; ?> </body> </html>

Если вы не гений-математик, вам будет нелегко быстро перевести количество секунд после January 1, 1970 в в конкретное время прошлого или будущего. Но здесь вам поможет ещё одна функция: mktime, выполняющая вычисления за вас.

 

 

Синтаксис функции mktime таков (hour, minute, second, month, day, year). Следующий пример - конвертация первой фазы луны (July 21, 1969, 02:56):

<html> <head> <title>время и дата</title> </head> <body> <?php echo mktime (2,56,0,7,21,1969); ?> </body> </html>

Заметьте, что возвращается отрицательное число, поскольку это дата ранее January 1, 1970.

Теперь можно объединить это с функцией date и определить, какой тогда был день недели.

<html> <head> <title>Время и дата</title> </head> <body> <?php echo date("l", mktime(2,56,0,7,21,1969)); ?> </body> </html>

Для чего это можно использовать?

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

Ответ: всё, что вы здесь изучаете - строительные блоки, и единственное, что может ограничивать вас, это ваше собственное творческое воображение! Рискну утверждать, что вы уже знаете больше, чем предполагаете. Например, вы в курсе, что можете сделать сайт с различными фоновыми изображениями для каждого дня недели и что это будет работать в любом браузере?

 

 

Это действительно правда! Посмотрите на пример:

<html> <head> <title>Время и дата</title> </head> <body background="background_<?php echo date("w"); ?>.png"> </body> </html>

 

Этот пример, с динамическим фоновым изображением, требует наличия семи изображений, именованных background_1.png, background_2.png, background_3.png, etc.

Если пользователь входит на ваш сайт во вторник, фоновым будет изображение background_2.png, на следующий день - background_3.png. Легко и просто!

 

Циклы

В PHP имеется возможность управлять выполнением скриптов с помощью различных управляющих структур. В этом уроке мы рассмотри циклы. Циклы могут использоваться для повторения частей скриптов указанное число раз или до выполнения определённого условия.

Циклы "while"

Синтаксис цикла while таков:

while (условие) { Оператор }

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

Рассмотрим простой пример:

<html> <head> <title>Циклы</title> </head> <body> <?php $x = 1; while ($x <= 50) { echo "<p>Этот текст повторяется 50 раз</p>"; $x = $x + 1; } ?> </body> </html>

В этом примере используется переменная/variable "$x". Как вы могли заметить, имена переменных в РНР всегда начинаются с символа "$". Поначалу это легко забыть, но это абсолютно необходимо запомнить, иначе скрипт не будет работать.

Помимо прочего, пример почти всегда говорит сам за себя. Сначала переменная $x получает значение 1. Затем цикл запрашивает у сервера повторение текста, пока $x не станет меньше или равна 50. При каждом проходе цикла значение переменной $x уменьшается на 1.

Циклы "for"

Другой способ создания цикла - с использованием for:

for (Инициализация; Условие; Шаг) { Оператор }

Оператор повторяется, пока 'Инициализация' + 'Шаг' удовлетворяют 'Условию'. Если это непонятно, взгляните на пример:

<html> <head> <title>Циклы</title> </head> <body> <?php for ($x=0; $x<=50; $x=$x+5) { echo '<p>variable $x теперь = ' . $x . '</p>'; } ?> </body> </html>

В вышеприведённом примере $x увеличивается на 5 при каждом проходе цикла. Цикл продолжается, пока $x меньше или равна 50. Обратите также внимание, как значение $x используется в качестве части этого выражения.

Вот другой пример:

<html> <head> <title>Циклы</title> </head> <body> <?php for ($ x=1; $x<=6; $x=$x+1) { echo "<h" . $x . ">Уровень заголовка " . $x . "</h" . $x . ">"; } ?> </body> </html>

 

Всё ли понятно? Сначала мы устанавливаем $x равной 1. Затем при каждом проходе цикла мы поднимаем уровень заголовка на $x (h1, h2, h3, etc.), пока $x не будет равна 6.

Вложенные циклы

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

Но будьте осторожны! PHP работает медленнее со сложными и большими скриптами. Например, в следующем примере с тремя циклами мы можем записать более 16 миллионов цветов!

Чтобы не замедлять работу страницы, мы должны значительно урезать это число, сделав шаг равным 30 и ограничив количество цветов числом 512.

<html> <head> <title>Циклы</title> </head> <body> <?php for ($intRed=0; $intRed<=255; $intRed=$intRed+30) { for ($intGreen=0; $intGreen<=255; $intGreen=$intGreen+30) { for ($intBlue=0; $intBlue<=255; $intBlue=$intBlue+30) { $StrColor = "rgb(" . $IntRed . "," . $IntGreen . "," . $IntBlue . ")"; echo "<span style='color:" . $StrColor . "'>" . $ StrColor . "</span>"; } } } ?> </body> </html>

 

В этом примере каждый из трёх основных цветов может (red, green и blue) может иметь значение от 0 до 255. Любое сочетание этих трёх цветов создаёт цвет в форме rgb(255,255,255). Этот код цвета используется как color в тэге <span>.

 

Условия

Условия используются для выполнения части скрипта, только если некоторые предопределённые требования (условия/conditions) выполняются. Например, условие может требовать, чтобы дата была после January 1, 2012, или чтобы переменная была больше 7.

If...

Первый тип условия, который мы рассмотрим, называется if, и оно имеет такой синтаксис:

if (условие) { оператор }

Этот синтаксис, опять-таки близок нормальному языку: If\еслиусловие соответствует, то выполняется ещё что-то. Рассмотрим простой пример:

<html> <head> <title>Циклы</title> </head> <body> <?php $x = 2; if ($x > 1) { echo "<p>переменная $x больше 1</p>"; } ?> </body> </html>

if ... else ...

Следующий тип условия, который мы рассмотрим, называется else , который может быть представлен в следующей форме:

if (условие) { оператор } else { оператор }

Синтаксис: if\еслиусловие соответствует, выполняется что-то, либоelse\иначевыполняется ещё что-то.

В следующем примере мы используем номер месяца в условии if else для определения времени года:

 

<html>

<head>

<title>Условия</title>

</head>

<body>

 

<?php

 

if (date ("m") == 3) {

echo "<p>Сейчас весна!</p> ";

}

else {

echo "<p>Я не знаю, какое сейчас время года!</p> ";

}

 

?>

 

</body>

</html>

Как видите, это условие работает не особо тонко - оно выполняется, только если сейчас март!

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

== равно
< меньше, чем
> больше, чем
<= меньше или равно
>= больше или равно
!= не равно

Кроме того существуют логические операции:

&& И
|| ИЛИ
! НЕ

 

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

<html> <head> <title>Условия</title> </head> <body> <?php if (date("m") >= 3 && date("m") <= 5) { echo "<p> Сейчас весна!</p> "; } else { echo "<p> Сейчас, зима, лето или осень!</p> "; } ?> </body> </html>

Рассмотрим расширенное условие подробнее:

date("m") >= 3 && date("m") <= 5

Его можно расшифровать так:

Если месяц больше или равен 3 и меньше или равен 5

Неплохо, а? Операции играют важную роль в PHP.

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

if ... elseif ... else...

 

 

Используя elseif, мы можем расширить условие, и оно будет работать для всех месяцев:

<html> <head> <title>Условия</title> </head> <body> <?php if (date("m") >= 3 && date("m") <= 5) { echo "<p>Сейчас весна!</p>"; } elseif (date("m") >= 6 && date("m") <= 8) { echo "<p>Сейчас лето!</p>"; } elseif (date("m") >= 9 && date("m") <= 11) { echo "<p>Сейчас осень!</p>"; } else { echo "<p>Сейчас зима!</p>"; } ?> </body> </html>

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

switch ... case

Другой способ написания условий - использование метода switch:

switch (выражение) { case 1: оператор break; case 2: оператор break; default: оператор break; }

Этот метод основан на выражении и перечисляет различные "ответы" или "значения" с соответствующими операторами. Проще всего объяснить работу этого метода на примере.

Как вы помните из урока 4, функция date("w") возвращает текущий день недели. Можно использовать это в нашем примере, где выводится названия дня (вместо цифры):

<html> <head> <title>Условия</title> </head> <body> <?php switch(date("w")) { case 1: echo "Сегодня понедельник"; break; case 2: echo "Сегодня вторник"; break; case 3: echo "Сегодня среда"; break; case 4: echo "Сегодня четверг"; break; case 5: echo "Сегодня пятница"; break; case 6: echo "Сегодня суббота"; break; default: echo "Сегодня воскресенье"; break; } ?> </body> </html>

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

 

 

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

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






ТОП 5 статей:
Экономическая сущность инвестиций - Экономическая сущность инвестиций – долгосрочные вложения экономических ресурсов сроком более 1 года для получения прибыли путем...
Тема: Федеральный закон от 26.07.2006 N 135-ФЗ - На основании изучения ФЗ № 135, дайте максимально короткое определение следующих понятий с указанием статей и пунктов закона...
Сущность, функции и виды управления в телекоммуникациях - Цели достигаются с помощью различных принципов, функций и методов социально-экономического менеджмента...
Схема построения базисных индексов - Индекс (лат. INDEX – указатель, показатель) - относительная величина, показывающая, во сколько раз уровень изучаемого явления...
Тема 11. Международное космическое право - Правовой режим космического пространства и небесных тел. Принципы деятельности государств по исследованию...



©2015- 2024 pdnr.ru Все права принадлежат авторам размещенных материалов.