PHP - Что такое РНР. Язык программирования PHP

Как ни странно, но все 5 лет, которые существует этот сайт, здесь не было такого раздела:-)
попробуем восполнить этот недостаток.
Данный раздел предназначается тем, кто собирается изучать PHP или просто интересуется - что это такое.

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

Для чего вообще может понадобиться язык программирования при создании сайта? Кому он пригодится, а кому - не очень? Давайте посмотрим.

Условно говоря, применение PHP можно разделить на три группы:

1. Самое простое (но очень мощное) применение - это использование PHP, как аналога SSI. Записать все неизменяемые части сайта в отдельные файлы (меню, шапку, подвал) и вместо того, чтобы писать одно и то же на каждой странице, просто вызывать
include "menu.php" ;
Это уже значительно облегчит работу с сайтом. К примеру, если добавится новый пункт в меню...

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

3. Победное шествие PHP па планете началось в тот миг, когда кому-то пришла в голову замечательная идея: а почему бы не добавлять материалы на сайт не обычным способом, закачивая HTML файлы по FTP, а забивая текст в форму, как сообщение в гостевую книгу?
Таким образом, пишется две программы, одна из которых позволет администратору добавить информацию на сайт, а вторая - показывает эту информацию посетителям. Таким образом устроены практически все современные сайты.

С чем чаще всего путают PHP? С готовыми программами, написанными на PHP. Если вам нужна гостевая книга, портал или электронный магазин - вам не нужно учить PHP. Вам нужно найти готовую программу.

Если же вы решили изучать этот язык, то следует знать, что ожидает впереди. Для того, чтобы стать даже начинающим веб-программистом, надо знать:
- три языка программирования - HTML, PHP и SQL.
- Иметь очень хорошее представление о протоколе передачи гипертекста HTTP и о том, как взаимодействует компьютер пользователя с веб-сервером.
- иметь базовые представления об операционных системах (в частности понития файл, каталог, знать основные отличия windows от unix)
- иметь базовые представления о сетевом протоколе TCP/IP (как соединяются компьютеры, что такое IP адрес, DNS и прочее)
- обязательно придется познакомиться с понятием отладки своих программ

Если весь этот объем не пугает, то добро пожаловать! Начните с раздела "

PHP (англ. PHP: Hypertext Preprocessor -- «PHP: препроцессор гипертекста», англ. Personal Home Page Tools (устар.) -- «Инструменты для создания персональных веб-страниц») -- язык программирования, созданный для генерирования HTML-страниц на веб-сервере и работы с базами данных. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров. Входит в LAMP -- распространённый набор для создания веб-сайтов (Linux, Apache, MySQL, PHP (Python или Perl)).

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

В области программирования для Сети, PHP -- один из популярнейших скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP. PHP отличается наличием ядра и подключаемых модулей, «расширений»: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и т. п. Любой желающий может разработать своё собственное расширение и подключить его. Существуют сотни расширений, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя. Интерпретатор PHP подключается к веб-серверу либо через модуль, созданный специально для этого сервера (например, для Apache или IIS), либо в качестве CGI-приложения.

Кроме этого, он может использоваться для решения административных задач в операционных системах GNU/Linux, Microsoft Windows, Mac OS X и других версиях ОС. Однако в таком качестве он не получил распространение, отдавая пальму первенства Perl, Python и VBScript.

В настоящее время PHP используется сотнями тысяч разработчиков. Порядка 20 миллионов сайтов сообщают о работе с PHP, что составляет более пятой доли доменов Интернета.

Название PHP -- рекурсивная аббревиатура, означающая «PHP: Hypertext Preprocessor» (ранее акроним расшифровывался как «Personal Home Page Tools»). Изначально PHP создавался в качестве надстройки над Perl для облегчения разработки веб-страниц.

В 1994 году датский программист (ныне живущий в Канаде) Расмус Лердорф (Rasmus Lerdorf) написал набор скриптов на Perl/CGI для вывода и учёта посетителей его онлайн-резюме, обрабатывающий шаблоны HTML-документов. Лердорф назвал набор Personal Home Page (Личная Домашняя Страница). Вскоре функциональности и быстроты Perl -- интерпретатора скриптов -- перестало хватать, и Лердорф написал на языке C новый интерпретатор шаблонов PHP/FI (англ. Personal Home Page / Forms Interpreter -- «Личная Домашняя Страница / Интерпретатор форм». PHP/FI включал базовую функциональность сегодняшнего PHP: оформление переменных в стиле Perl ($имя_переменной для вывода значения), автоматическую обработку форм и встраиваемость в HTML-текст и многое другое. Новорожденный язык отличался от своего прародителя более простым и ограниченным синтаксисом.

В 1997 году после длительного бета-тестирования вышла вторая версия обработчика, написанного на C -- PHP/FI 2.0. Её использовали около 1 % (приблизительно 50 тысяч) всех интернет-доменов мира.

PHP 3.0 была первой версией, напоминающей PHP, каким мы знаем его сегодня. В 1997 году два израильских программиста, Энди Гутманс (Andi Gutmans) и Зээв Сураски (Zeev Suraski), разработчики из израильского технологического института, расположенного в Хайфе, Израиль, переписали код с нуля: PHP/FI 2.0 был сочтён ими непригодным для разработки приложения электронной коммерции, над которым они в то время работали. Для совместной работы над PHP 3.0 с помощью базы разработчиков PHP/FI 2.0 Энди, Расмус и Зив решили объединиться и объявить PHP 3.0 официальным преемником PHP/FI, разработка же PHP/FI была практически полностью прекращена.

Одной из сильнейших сторон PHP 3.0 была возможность расширения ядра. Впоследствии интерфейс написания расширений привлёк к PHP множество сторонних разработчиков, работающих над своими модулями, что дало PHP возможность работать с огромным количеством баз данных, протоколов, поддерживать большое число API. Фактически, это и был главный ключ к успеху, но стоит добавить, что немаловажным шагом оказалась разработка нового, намного более мощного и полного синтаксиса с поддержкой ООП.

Абсолютно новый язык программирования получил новое имя. Разработчики отказались от дополнения о персональном использовании, которое имелось в аббревиатуре PHP/FI. Язык был назван просто PHP.

К концу 1998 года PHP использовался десятками тысяч пользователей. Сотни тысяч веб-сайтов сообщали о том, что они работают с использованием этого языка. В то время PHP 3.0 был установлен приблизительно на 10 % веб-серверов Интернета.

PHP 3.0 был официально выпущен в июне 1998 года после 9 месяцев публичного тестирования.

PHP 4.0. К зиме 1998 года, практически сразу после официального выхода PHP 3.0, Энди Гутманс и Зив Сураски начали переработку ядра PHP. В задачи входило увеличение производительности сложных приложений и улучшение модульности базиса кода PHP. Расширения дали PHP 3.0 возможность успешно работать с набором баз данных и поддерживать большое количество различных API и протоколов, но PHP 3.0 не имел качественной поддержки модулей и приложения работали неэффективно.

Новый движок, названный Zend Engine (от имён создателей, Зива и Энди, также основателей Zend Technologies), успешно справлялся с поставленными задачами и впервые был представлен в середине 1999 года. PHP 4.0, основанный на этом движке и принёсший с собой набор дополнительных функций, официально вышел в мае 2000 года, почти через два года после выхода своего предшественника PHP 3.0. В дополнение к улучшению производительности, PHP 4.0 имел ещё несколько ключевых нововведений, таких как поддержка сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.

Прекращение выпуска обновлений PHP 4 было запланировано на конец 2007 года. Однако вплоть до 8 августа 2008 года выпускались критические обновления безопасности. С 9 августа 2008 года всякая поддержка версии PHP 4.x была прекращена.

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

  • 1 августа 2008 года анонсирована первая альфа-версия PHP 5.3.0, которая содержит ряд изменений и дополнений:
    • - Пространство имен
    • - Позднее статическое связывание и специальный метод __callStatic()
    • - Анонимные функции
    • - Addition of the intl, phar (phar is scheduled for some more work a head of alpha2), fileinfo and sqlite3 extensions
    • - Optional cyclic garbage collection
    • - Optional support for the MySQLnd replacement driver for libmysql
    • - Отмена поддержки версий операционной системы до Windows 2000 (Windows 98, NT4, и.т.д.)
    • - Новые синтаксические конструкции, такие как NOWDOC, ограниченный GOTO, короткий вид тернарного оператора "?:"

PHP 6.0. Шестая версия PHP находится в стадии разработки с октября 2006 года. В ней уже сделано множество нововведений, как, например, исключение из ядра регулярных выражений POSIX и «длинных» суперглобальных массивов, удаление директив safe_mode, php_magic_quotes и register_globals из конфигурационного файла php.ini. Также много внимания уделено поддержке Юникода. Загрузить текущую версию разрабатываемого кода для GNU/Linux/BSD и скомпилированные версии для Microsoft Windows можно на сайте PHP Snapshots.

Синтаксис PHP . Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.

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

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

Помимо ограничителей , допускается использование дополнительных вариантов, таких как и . Кроме того, до версии 6.0 допускается использование ограничителей языка программирования ASP (конструкции и могут быть выключены в конфигурационном файле php.ini).

Имена переменных начинаются с символа $, тип переменной объявлять не нужно. В отличие от имён функций и классов, имена переменных чувствительны к регистру. Переменные обрабатываются в строках, заключённых в двойные кавычки, и heredoc-строках (строках, созданных при помощи оператора $b; // Обращение к полю a объекта, т.к. $b = "a"

$obj->$c(); // Вызов метода function_name() объекта

Суперглобальные массивы. Суперглобальными массивами (англ. Superglobal arrays) в PHP называются предопределённые массивы. Большая часть этих массивов содержит входные данные запроса пользователя (параметры GET-запроса, поля форм при посылке методом POST, куки и т. п.).

Все суперглобальные массивы кроме $GLOBALS и $_REQUEST имеют устаревшие аналоги с длинными именами, которые доступны вплоть до пятой версии PHP (в шестой версии планируется их исключение). Таким образом, обращения $_GET["year"] и $HTTP_GET_VARS["year"] идентичны.

Массив всех глобальных переменных (в том числе и пользовательских).

$_SERVER (устаревший аналог -- $HTTP_SERVER_VARS)

Содержит переменные окружения, которые операционная система передает серверу.

$_ENV (уст. $HTTP_ENV_VARS)

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

$_GET (уст. $HTTP_GET_VARS)

Содержит параметры GET-запроса, переданные в URI после знака вопроса «?».

$_POST (уст. $HTTP_POST_VARS)

Ассоциативный массив значений полей HTML-формы при отправки методом POST. Индексы элементов соответствуют значению атрибута name элементов управления HTML-формы.

$_FILES (уст. $HTTP_POST_FILES)

Ассоциативный массив со сведениями об отправленных методом POST файлах. Каждый элемент имеет индекс идентичный значению атрибута «name» в форме и, в свою очередь, также является массивом со следующими элементами:

["name"] -- исходное имя файла на компьютере пользователя.

["type"] -- указанный агентом пользователя MIME-тип файла. PHP не проверяет его и поэтому нет никаких гарантий что указанный тип соответствует действительности.

["size"] -- размер файла в байтах.

["tmp_name"] -- полный путь к файлу во временной папке. Файл необходимо переместить оттуда функцией move_uploaded_file. Загруженные файлы из временной папки PHP удаляет самостоятельно.

$_COOKIE (уст. $HTTP_COOKIE_VARS)

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

Содержит элементы из массивов $_GET, $_POST, $_COOKIE. С версии PHP 4.1 включает $_FILES.

$_SESSION (уст. $HTTP_SESSION_VARS)

Содержит данные сессии.

Объектно-ориентированное программирование . PHP поддерживает широкие объектно-ориентированные возможности, полная поддержка которых была введена в пятой версии языка.

Класс в PHP объявляется с помощью ключевого слова class. Методы и поля класса могут быть общедоступными (public, по умолчанию), защищёнными (protected) и скрытыми (private). PHP поддерживает все три основные механизма ООП -- инкапсуляцию, полиморфизм и наследование (родительский класс указывается с помощью ключевого слова extends после имени класса). Поддерживаются интерфейсы (ставятся в соответствие с помощью implements). Разрешается объявление финальных, абстрактных методов и классов. Множественное наследование классов не поддерживается, однако класс может реализовывать несколько интерфейсов. Для обращения к методам родительского класса используется ключевое слово parent.

Классы в PHP имеют ряд специальных методов (англ. Magic methods), начинающихся с двух символов подчёркивания. Особо стоит отметить конструктор (__construct(), в ранних версиях конструктором служил метод, одноименный с классом) и деструктор (__destruct()), а также методы чтения (__get()) и записи (__set()), свёртывания (__sleep()) и развёртывания (__wake()), клонирования (__clone()) и др. Эти методы являются достаточно гибким инструментом: переопределяя их, можно легко добиться существенного изменения поведения объекта.

Экземпляры класса создаются с помощью ключевого слова new, обращение к полям и методам объекта производится с использованием символов ->. Для доступа к членам класса из его методов используется переменная $this.

Здравствуйте уважаемые будущие программисты. Начинаем .

Прежде чем начать произносить умные определения, попробую объяснить Вам, что такое PHP, на примере из жизни.

Представьте что наш сайт — это дом. Красивый дом с бежевыми стенами, зелёной крышей, белыми окнами, шоколадными дверями.

И внутри красота. Прекрасные обои, плитка, сантехника, мебель, и даже посуда.

Так вот, вся эта картинка создаётся на html и css.

А вот чтобы вдохнуть в Ваш дом жизнь, чтоб в нём появились люди, стали общаться и что-то делать, да и чтоб другие люди смогли всё это увидеть нужен php.

У такой компьютерной жизни есть название — интерактивность, и создаётся она языком программирования PHP.

Ну а теперь более научное определение.

PHP — это язык программирования, специально разработанный для написания web-приложений (сценариев) и вот что о нём написано в Википедии:

А пока немного наглядности. Вот так выглядит html





Документ без названия


Привет мир!

Здравствуйте уважаемые будущие веб мастера.
После долгих колебаний я всё-таки решил тоже
покопать на ниве обучения сайтостроению, хотя более перекопанной
нивы наверное трудно себе представить, так как о том,
как создать сайт на WordPress, в интернете описано уже несколько миллионов раз.
И всё-ж, и всё-ж.




Вот так CSS

#header {
height : 80px ;
background-color : #25B33f ;
margin-bottom : 10px ;
}
#sidebar {
background-color : #2FF553 ;
margin-bottom : 10px ;
width : 180px ;
padding : 10px ;
float : right ;
}

А вот так PHP.

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

Причём изучение php, по моему, невозможно без знания основ html и css, так как он является как бы управляющим тем, что написано на этих двух языках.

То есть, html — основа, css — оформление, а php — управление.


Перемена

— Чем ты кормишь свою собачку?
— Помидорами.
— Ух, ты, а у меня не ест.
— У меня тоже.

PHP (Hypertext PreProcessor ) – один из самых популярных инструментов веб-программирования на стороне сервера. Работа PHP в самом простом варианте сводится к обработке http запроса клиента. Обработка запроса, в свою очередь, заключается в программном формировании гипертекста в соответствии с параметрами запроса, после чего полученная разметка возвращается клиенту. Когда клиент (интернет браузер) запрашивает обычную статическую интернет страницу (чаще всего с расширением html), сервер в качестве ответа возвращает ему содержимое этой страницу без изменений “как есть”. Если запрашивается php страница, то в процессе обработки запроса содержимое указанной страницы сначала обрабатывается интерпретатором PHP, и только потом результат этой обработки отправляется клиенту.

Другими словами, PHP – это препроцессор гипертекста , что и отражено в его названии. Пре процессор потому что окончательной обработке гипертекст подвергается уже на стороне клиента, результат которой мы видим в окне браузера (процессором гипертекста является уже сам браузер). Можно сказать, что PHP – это генератор гипертекста, поскольку в большинстве случаев его работа – это программная генерация по содержимому базы данных или по любой другой структурированной информации, размещенной на сервере. Аббревиатура выглядит, как PHP, а не как, к примеру, HPP или иначе, поскольку первоначально расшифровывалась как Personal Home Page Tools – инструментарий для создания персональных интернет страниц. Таким образом, первый вариант расшифровки PHP отражал его назначение, а нынешний – принцип работы.

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

  • обработка и извлечение параметров http запросов GET и POST;
  • формирование и отправка http заголовков ;
  • инфраструктура для хранения данных сеанса ;
  • программные сервисы для работы с cookies ;

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


  • работа с файлами по FTP протоколу ;
  • работа с базами данных посредствам ;
  • поддержка
  • поддержка HTTP авторизации ;
  • обмен сообщениями по электронной почте и многое другое.

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

Основы программирования на PHP Добавление в разметку кода PHP и результат работы препроцессора гипертекста

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

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

Если вы откроете исходный код полученной страницы в браузере, то никакого PHP там уже не будет (если, конечно, на сервере установлен интерпретатор PHP). Смысла в таком использовании оператора echo не особо много. Вся прелесть PHP в том, что формируемый HTML может зависеть от параметров запроса, содержимого базы данных, политики безопасности и многого другого. Анализ и обработка всего этого выполняется с использованием знакомых практически всем , таких как циклы, условия, функции и т.п. Забегая вперед, приведу небольшой пример программы на PHP c использованием цикла и условного оператора, с тем, чтобы начальное представление о препроцессоре гипертекста стало более полным. Следующая программа выводит значения факториала чисел от 1 до 9.

Пример программы на PHP

Результат ее работы будет выглядеть в браузере примерно следующим образом:

1!=1 2!=2 3!=6 4!=24 5!=120 6!=720 7!=5040 8!=40320 9!=362880

Организация приложения из нескольких файлов PHP Краткий условный или тернарный оператор

Ниже приведен общий вид условного оператора присваивания с использованием тернарного оператора:
$результат = условие? выражение если true: выражение если false;

Пример:
$result = ($a>5) ? $a+$b: $a-$b;

Если a больше 5 , то переменной result присваивается значение a+b , иначе a-b .

Альтернатива оператора if с большим количеством конструкций elseif . Выполнение операторов начинается с той секции case , со значением которой совпадет значение выражения и продолжается по всем последующим case , пока не встретится команда break - завершить выполнение. Секция default – альтернатива секции else в условном операторе.

Switch (выражение ) { case значение 1 : оператор 1 ; case значение 2 : оператор 2 ; case значение 3 : оператор 3 ; default: оператор, выполняемый “по-умолчанию” ; } do тело цикла ; while (условие );

Пример тот же:

$i=2; $f=1; do { $f=$f*$i; $i++; echo $i,"!=",$f,"
"; } while ($i