Что такое PHP?
PHP - это интерпретируемый язык для создания активных Web-страниц. Программа на PHP, подобно тексту на JavaScript, VBScript или ASP, вставляется в HTML-файл. Начало и конец программы отмечаются специальными скобками <?php и ?>. Текст вне этих скобок PHP не интерпретирует: он передается Web-браузеру "как есть".
Синтаксис PHP основан на синтаксисе языков Си, Java и Perl. Способы заставить сервер правильно реагировать на HTML-файлы со вставками на PHP, вообще говоря, различны для разных серверов, но чаще всего бывает достаточно дать имени файла расширение *.php3.
PHP - это Си-подобный язык, предназначенный для быстрого создания программ на WEB-сервере. Он похож на Perl и ASP, но на порядок удобней их! Программы на PHP защищены от взлома методом "кривых символов". PHP вместе с Apache - самый популярный WEB-сервер - работает гораздо эффективней, чем Perl+Apache (RTFM). Если вы веб-мастер (а не держатель домашней странички) и вы установите этот PHP под Windows или Unix, вы поймете что значит выражение "крутой программер" .
PHP - это система разработки скриптов, включающая в себя CGI - интерфейс, интерпретатор языка и набор функций для доступа к базам данных и различным объектам WWW. На данный момент PHP является наиболее удобным и мощным средством разработки приложений WWW и интерфейсов к БД в Интернет.
PHP — это интерпретируемый язык программирования, код которого встраивается непосредственно в HTML-страницы. При запросе пользователя web-сервер просматривает документ, выполняет найденные в нем PHP-инструкции, а результат их выполнения возвращает пользователю. При этом статическая часть документа, написанная на языке HTML, фактически является шаблоном, а изменяемая часть формируется при исполнении PHP-инструкций. Для удаленного пользователя подобные документы ничем не отличаются от обычных статических HTML-документов, за исключением того, что в расширении имени файла для таких документов может стоять не htm или html, а phtml или php3(4).
Как это работает
Сами скрипты находятся на сервере и их содержимое посетителю сайта просмотреть невозможно. Файлы скриптов имеют расширение *.php3 или *.phtml. При активации скрипта серверная программа выполняет все команды php этого скрипта, не затрагивая статическую часть документа (HTML-код) и результат возвращается программе-браузеру. В итоге пользователь видит обычную веб-страницу, отличающеюся от других только расширением.
Что такое PHP
PHP - (официально "PHP: Hypertext Preprocessor") - платформо-независимый, исполняющийся на сервере, HTML связанный язык скриптов. Что это означает? Вот простой пример, который взят из официального руководства по РНР:
<html>
<head>
<title>Пример РНР скрипта</title>
</head>
<body>
<? echo "Привет, я ваш первый PHP скрипт!"; ?>
</body>
</html>
Заметьте, как этот скрипт отличается от уже ранее известных вам CGI скриптов на языках Perl или C. Вместо того, чтобы прописывать множество строк для вывода HTML, вы просто вставляете кусочки скрипта в соответствующие места в вашем HTML документе для того, чтобы выполнить какое-то действие (в даном случае вывести текст "Привет, я ваш первый PHP скрипт!"). Удобно, правда?
Места вставки кода начинаются и заканчиваются специально определенными тэгами. Вы всегда должны начинать место вставки тэгами .В противном случае РНР будет выдавать ошибку и скрипт не будет выполняться. Это как в песне: "Нажми на кнопку - получишь результат!".
Вы можете спросить, а чем РНР лучше того же Javascript? Какая разница? А разница большая: РНР исполняется на сервере, а Javascript - на машине клиента. К примеру, никто не сможет посмотреть код РНР скрипта, если Вы того не желаете - виден лишь результат его работы в отличие от "легкодоступного" Javascript.
Более того, Вы можете настроить Ваш WWW сервер таким образом, что любая WWW страница будет обрабатываться РНР процессором - и никто не догадается, что страничка с расширением *.html работает как РНР скрипт. Неужели это не замечательно? Кстати, разработчики из компании Zend обещают в ближайшее время выпустить коммерческий компилятор для РНР, Вот тогда Вы сможете разрабатывать свои продукты, компилировать их и отдавать (или продавать) своим клиентам, которые не смогут без Вашего согласия посмотреть код скрипта. Реальная защита от пиратов и разных нечестных людей!!!
Что может РНР
РНР способен делать все, что делают другие CGI программы. РНР скрипты могут собирать и обрабатывать данные из форм, генерировать динамические странички, принимать и получать файлы "cookies", работать с сессиями и т.п.
Но, пожалуй, самая сильная и наиболее развитая сторона РНР - это работа с базами данных. Написание скрипта, который взаимодействует с базой данных - задача очень несложная, если делать это на PHP. Вот список баз данных, которые поддерживаются РНР в настоящее время:
• Adabas
• InterBase
• Solid
• dBase
• mSQL
• Sybase
• Empress
• MySQL
• Velocis
• FilePro
• Oracle
• Unix dbm
• Informix
• PostgreSQL
В РНР хорошо развита поддержка различных протоколов, таких как IMAP, SNMP, NNTP, POP3 и даже HTTP. Вы также можете устанавливать прямые соединия к разным сокетам и взаимодействовать с ними. Кроме того, в среде Unix (в меньшей мере, в Windows) реализована возможность работать с системными командами и обрабатывать результаты их выполнения. В общем, РНР - очень легкий в изучении, надежный и "могучий" язык.
PHP
[править]
Материал из Википедии — свободной энциклопедии
PHP
Семантика: мультипарадигменный
Тип исполнения: Интерпретатор компилирующего типа
Появился в: 1994 г.
Автор(ы): Расмус Лердорф
Типизация данных: динамическая
Создан под влиянием: Perl, C
PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста») — язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров. Входит в LAMP — «стандартный» набор для создания веб-сайтов (Linux, Apache, MySQL, PHP (Python или Perl)).
Группа разработчиков PHP состоит из множества людей, добровольно работающих над ядром и расширениями PHP и смежными проектами, такими как PEAR или документация языка.Содержание [убрать]
1 Использование PHP
2 История
2.1 PHP/FI
2.2 PHP 3
2.3 PHP 4
2.4 PHP 5
2.5 PHP 6
3 Синтаксис
3.1 Типы данных
3.2 Характерные конструкции
3.3 Суперглобальные массивы
3.4 Объектно-ориентированное программирование
3.5 Другие возможности
4 Пасхальные яйца
5 Популярные приложения
6 IDE для PHP
7 См. также
8 Ссылки
9 Литература
10 Примечания
[править]
Использование PHP
В области программирования для Сети PHP — один из популярнейших скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP. PHP отличается наличием ядра и подключаемых модулей, «расширений»: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и т. п. Любой желающий может разработать своё собственное расширение и подключить его. Существуют сотни расширений, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя. Интерпретатор PHP подключается к веб-серверу либо через модуль, созданный специально для этого сервера (например, для Apache или IIS), либо в качестве CGI-приложения.
Кроме этого, он может использоваться для решения административных задач в операционных системах UNIX, GNU/Linux, Microsoft Windows, Mac OS X и AmigaOS. Однако в таком качестве он не получил распространение, отдавая пальму первенства Perl, Python и VBScript.
В настоящее время PHP используется сотнями тысяч разработчиков. Порядка 20 миллионов сайтов сообщают о работе с PHP, что составляет более пятой доли доменов Интернета[1].
[править]
История
Название PHP — рекурсивная аббревиатура, означающая «PHP: Hypertext Preprocessor» (ранее акроним расшифровывался как «Personal Home Page Tools»). Изначально PHP создавался в качестве надстройки над Perl для облегчения разработки веб-страниц.
[править]
PHP/FI
В 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
PHP 3.0 была первой версией, напоминающей PHP, каким мы знаем его сегодня. В 1997 году два израильских программиста Энди Гутманс (Andi Gutmans) и Зив Сураски (Zeev Suraski), разработчики из израильского института технологий (Technion), переписали код с нуля: разработчики сочли 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 — аббревиатура, содержащая рекурсивный акроним (англ. PHP: Hypertext Preprocessor — «PHP: Препроцессор Гипертекста»).
К концу 1998 года PHP использовался десятками тысяч пользователей. Сотни тысяч веб-сайтов сообщали о том, что они работают с использованием этого языка. В то время PHP 3.0 был установлен приблизительно на 10 % веб-серверов Интернета.
PHP 3.0 был официально выпущен в июне 1998 года после 9 месяцев публичного тестирования.
[править]
PHP 4
К зиме 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 года[2]. До этого же времени будет осуществляться официальная поддержка четвертой версии. Далее до 8 августа 2008 года по мере необходимости будут появляться только критические обновления безопасности. С 9 августа четвертая версия PHP уйдет в историю.
[править]
PHP 5
Пятая версия PHP была выпущена разработчиками 13 июля 2004 года. Изменения включают обновление ядра Zend (Zend Engine 2), что существенно увеличило эффективность интерпретатора. Введена поддержка языка разметки XML. Полностью переработаны функции ООП, которые стали во многом схожи с моделью, используемой в Java. В частности, введён деструктор, открытые, закрытые и защищённые члены и методы, окончательные члены и методы, интерфейсы и клонирование объектов. Нововведения, однако, были сделаны с расчётом сохранить наибольшую совместимость с кодом на предыдущих версиях языка. На данный момент самыми стабильными и часто используемыми являются именно версии 5.xx[3], даже несмотря на то, что уже имеется dev-версия PHP 6.
[править]
PHP 6
Шестая версия PHP находится в стадии[4] разработки с октября 2006 года. В ней уже сделано[5][6] множество нововведений, как, например, исключение из ядра регулярных выражений POSIX и «длинных» суперглобальных массивов, удаление директив safe_mode, php_magic_quotes и register_globals из конфигурационного файла php.ini. Также много внимания уделено поддержке Юникода.[7]. Загрузить текущую версию разрабатываемого кода для GNU/Linux/BSD и скомпилированные версии для Microsoft Windows можно на сайте PHP Snapshots.
[править]
Синтаксис
Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.
Простейшая программа Hello world на PHP выглядит следующим образом:
<?php
echo 'Hello, world!';
?>
PHP исполняет код, находящийся внутри ограничителей, таких как <?php ?>. Всё, что находится вне ограничителей, выводится без изменений. В основном, это используется для вставки PHP-кода в HTML-документ, например так:
<html>
<head>
<title>Тестируем PHP</title>
</head>
<body>
<?php echo 'Hello, world!'; ?>
</body>
</html>
Помимо ограничителей <?php ?>, допускается использование дополнительных вариантов, таких как <? ?> и <script language="php"> </script>. Кроме того, до версии 6.0 допускается использование ограничителей языка программирования ASP <% %>.
Имена переменных начинаются с символа $, тип переменной объявлять не нужно. В отличие от имён функций и классов, имена переменных чувствительны к регистру. Переменные обрабатываются в строках, заключённых в двойные кавычки, и heredoc-строках (строках, созданных при помощи оператора <<<).
PHP рассматривает переxод на новую строку как пробел, так же как HTML и другие языки со свободным форматом. Инструкции разделяются с помощью точки с запятой (, за исключением некоторых случаев.
PHP поддерживает три типа комментариев: в стиле языка Си (ограниченные /* */), C++ (начинающиеся с // и идущие до конца строки) и оболочки UNIX (с # до конца строки).
[править]
Типы данных
PHP является языком программирования с динамической типизацией, не требующим указанием типа при объявлении переменных. Преобразования между скалярными типами зачастую осуществляется неявно без дополнительных усилий (впрочем PHP предоставляет широкие возможности и для явного преобразования типов).
К скалярным типам данных относятся целый тип (integer), вещественный тип данных (float, double), булевский тип (boolean), строковый тип (string) и специальный тип NULL. К нескалярным типам относится «ресурс» (resource), массив (array) и объект (object).
Диапазон целых чисел (integer) в PHP зависит от платформы (обычно это диапазон 32-битных знаковых целых чисел, то есть от −2 147 483 648 до 2 147 483 647). Числа можно задавать в десятичной, восьмеричной и шестнадцатеричной системах счисления. Диапазон вещественных чисел (double) также зависит от платформы (для 32-битной архитектуры диапазон позволяет оперировать числами от ±1.7×10-308 до ±1.7×10+308).
PHP предоставляет разработчикам булевский тип (boolean), способный принимать только два значения TRUE («истина») и FALSE («ложь»). При преобразовании в булевский тип число 0, пустая строка, ноль в пустой строке «0», NULL и пустой массив считаются FALSE. Все остальные значения автоматически преобразуются в TRUE.
Специальный тип NULL предназначен для переменных без определённого значения. Единственным значением данного типа является константа NULL. Тип NULL принимают неиницализированные переменные, переменные инициализированные константой NULL, а также переменные, удалённые при помощи конструкции unset().
Ссылки на внешние ресурсы имеют тип «ресурс» (resource). Переменные данного типа, как правило, представляют собой дескриптор, позволяющий управлять внешними объектами, такими как файлы, динамические изображения, результирующие таблицы базы данных и т. п.
Массивы (array) поддерживают числовые и строковые ключи и являются гетерогенными. Массивы могут содержать значения любых типов, включая другие массивы. Порядок элементов и их ключей сохраняется.
[править]
Характерные конструкции
То, что PHP относится к интерпретируемым языкам, позволило реализовать гибкий и удобный механизм обращения к переменным, функциям и классам. Обращение к переменным производится с помощью символа $, за которым следует имя переменной. Данная конструкция может быть применена также для вызова функций, методов и т.п., имя которых совпадает с содержимым переменной. Например:
$a = 'I am a'; //записываем значение в переменную
echo $a; //Выводим содержимое переменной а
$b = 'a';
echo $$b; //Выводим содержимое переменной а
$c = 'function_name';
$c(); //Вызовется функция function_name
$d = 'Class_name';
$obj = new $d(); //Создастся объект класса Class_name
$obj->$b; //Обращение к полю a объекта
$obj->$c(); //Вызов метода function_name объекта
[править]
Суперглобальные массивы
Общение с внешним миром скрипта PHP происходит через суперглобальные массивы:
$_SERVER
$_ENV
$_GET
$_POST
$_REQUEST
$_FILES
$_SESSION
$_GLOBALS
[править]
Объектно-ориентированное программирование
PHP поддерживает широкие объектно-ориентированные возможности, полная поддержка которых была введена в пятой версии языка.
Класс в PHP объявляется с помощью ключевого слова class. Методы и поля класса могут быть общедоступными (public, по умолчанию), защищёнными (protected) и скрытыми (private). PHP поддерживает наследование (родительский класс указывается с помощью ключевого слова extends после имени класса) и интерфейсы (ставятся в соответствие с помощью implements). Разрешается объявление финальных, абстрактных методов и классов. Множественное наследование не поддерживается. Для обращение к методам родительского класса используется ключевое слово parent.
Классы в PHP 5 имеют ряд специальных методов (так называемых «magic methods»), начинающихся с двух символов подчёркивания. Особо стоит отметить конструктор (__construct, в ранних версиях конструктором служил метод, одноименный с классом) и деструктор (__destruct), а также методы чтения (__get) и записи (__set), свёртывания (__sleep) и развёртывания (__wake), клонирования (__clone) и др. Эти методы являются достаточно гибким инструментом: переопределяя их, можно легко добиться существенного изменения поведения объекта.
Экземпляры класса создаются с помощью ключевого слова new, обращение к полям и методам объекта производится с использованием символов ->. Для доступа к членам класса из его методов используется переменная $this.
class C1 extends C2 implements I1,I2{
private $a;
protected $b;
function __construct($a,$b){
parent::constructor($a,$b);
$this->a = $a;
$this->b = $b;
}
public function plus(){
return $a+$b;
}
/* ............... */
}
$d = new C1(1,2);
echo $d->plus();