mirror of
https://github.com/php/doc-ru.git
synced 2026-03-23 23:32:16 +01:00
216 lines
14 KiB
XML
216 lines
14 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 77f5f3b3a8bbe1ad7727201c7603d1419dd7840f Maintainer: shein Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<chapter xml:id="introduction" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
<info>
|
||
<titleabbrev>Введение</titleabbrev>
|
||
<title>Что такое PHP и что он умеет делать</title>
|
||
</info>
|
||
|
||
<section xml:id="intro-whatis" annotations="chunk:false">
|
||
<title>Что такое PHP?</title>
|
||
<para>
|
||
<acronym>PHP</acronym> (рекурсивный акроним словосочетания
|
||
<emphasis>PHP: Hypertext Preprocessor</emphasis>) — распространённый
|
||
язык программирования общего назначения с открытым исходным кодом,
|
||
который сконструировали специально для веб-разработки
|
||
и который встраивают в HTML-разметку.
|
||
</para>
|
||
<para>
|
||
Простой ответ, но что он означает? Вот пример кода:
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<info><title>Пример программирования на языке PHP</title></info>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<title>Пример</title>
|
||
</head>
|
||
<body>
|
||
|
||
<?php
|
||
echo "Привет, я — PHP-скрипт!";
|
||
?>
|
||
|
||
</body>
|
||
</html>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
<para>
|
||
Вместо рутинного вывода HTML-кода командами языка
|
||
(как в языках C или Perl),
|
||
PHP-страницы содержат HTML-разметку со встроенным кодом, который проделывает <replaceable>полезную работу</replaceable>
|
||
(в примере — выводит текст «<computeroutput>Привет, я — PHP-скрипт!</computeroutput>»).
|
||
PHP-код отделяется <link
|
||
linkend="language.basic-syntax.phpmode">начальным и конечным тегами
|
||
<code><?php</code> и <code>?></code></link> — инструкциями начала и завершения обработки кода,
|
||
которые разрешают входить в <quote>PHP-режим</quote> и выходить из него.
|
||
</para>
|
||
<para>
|
||
Язык PHP отличается от языка JavaScript, который обрабатывается на клиентской стороне,
|
||
тем, что PHP-скрипты выполняются на сервере, и генерируют HTML-разметку, которая затем
|
||
посылается клиенту. Клиент получит результаты запуска этого скрипта,
|
||
но не будет знать, какой базовый код сгенерировал результаты.
|
||
Веб-сервер настраивается даже так, чтобы
|
||
обычные HTML-файлы обрабатывались процессором PHP, и тогда клиенты
|
||
даже не смогут узнать, получают ли они обычный HTML-файл или
|
||
результат выполнения скрипта.
|
||
</para>
|
||
<para>
|
||
Язык PHP чрезвычайно прост для начинающих программистов, но предлагает
|
||
расширенные возможности программистам с опытом.
|
||
Не бойтесь читать длинный список возможностей PHP.
|
||
Написать простые PHP-скрипты получится уже через 1-2 часа
|
||
после начала знакомства с языком.
|
||
</para>
|
||
<para>
|
||
Хотя PHP-разработка ориентирована на то, чтобы создавать серверные скрипты,
|
||
язык этим не ограничивается.
|
||
Продолжайте чтение и не пропустите главу
|
||
«<link linkend="intro-whatcando">Что умеет PHP</link>» или начните непосредственно
|
||
с «<link linkend="tutorial">Вводного руководства</link>», чтобы перейти
|
||
к изучению веб-программирования.
|
||
</para>
|
||
</section>
|
||
|
||
<section xml:id="intro-whatcando" annotations="chunk:false">
|
||
<info><title>Что умеет PHP</title></info>
|
||
<para>
|
||
PHP умеет делать что-угодно. Главное назначение PHP —
|
||
создавать скрипты, которые обрабатываются на сервере;
|
||
поэтому PHP умеет выполнять всё то, что выполняет любая другая CGI-программа,
|
||
например, обрабатывать данные форм, генерировать динамические
|
||
страницы или отсылать и принимать cookies.
|
||
Но PHP умеет намного больше.
|
||
</para>
|
||
<para>
|
||
PHP применяют в двух основных областях.
|
||
<itemizedlist>
|
||
<listitem>
|
||
<simpara>
|
||
Создают скрипты, которые обрабатываются на стороне сервера.
|
||
Это традиционная и главная цель PHP. Чтобы написать и выполнить скрипт, понадобятся три вещи:
|
||
Синтаксический анализатор PHP (в виде CGI-программы или серверного модуля),
|
||
веб-сервер и браузер. Эти инструменты запускают на локальной машине,
|
||
чтобы просто поэкспериментировать с программированием на PHP.
|
||
Более подробные сведения даёт раздел
|
||
«<link linkend="install">Установка и настройка</link>».
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
Создают скрипты для запуска в командной строке.
|
||
PHP-скрипты запускаются без сервера или браузера,
|
||
потребуется только парсер — синтаксический анализатор PHP. Такой способ работы
|
||
с PHP идеально подходит для скриптов, которые требуется выполнять
|
||
регулярно, например, через <command>cron</command> (на платформах *nix или Linux)
|
||
или через «Планировщик задач» на платформах
|
||
Windows. Этими скриптами также просто обрабатывают тексты.
|
||
Дополнительную информацию даёт раздел
|
||
«<link linkend="features.commandline">Работа с PHP из командной строки</link>».
|
||
</simpara>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</para>
|
||
<para>
|
||
PHP <link linkend="install">работает</link> на большей части операционных систем, включая
|
||
Linux, многие модификации Unix (например, HP-UX, Solaris и OpenBSD),
|
||
Microsoft Windows, macOS, RISC OS и многие другие.
|
||
PHP также поддерживает бо́льшую часть современных
|
||
веб-серверов наподобие Apache, IIS и многих других.
|
||
Сюда входит любой веб-сервер, который умеет работать
|
||
с двоичным PHP-файлом FastCGI-интерфейса, например, серверы Lighttpd и nginx.
|
||
PHP работает либо как модуль, либо как CGI-процессор.
|
||
</para>
|
||
<para>
|
||
С PHP разработчик получает свободу выбора
|
||
операционной системы и веб-сервера. Больше того, у программиста
|
||
появляется выбор между процедурным
|
||
или объектно-ориентированным программированием (ООП), или сочетанием обеих парадигм.
|
||
</para>
|
||
<para>
|
||
Программирование на PHP не ограничивается выводом HTML-разметки. PHP также умеет
|
||
выводить файлы разных типов, например, изображений или PDF-файлов,
|
||
шифровать данные и отправлять электронную почту.
|
||
PHP также легко выводит текст наподобие JSON- или XML-строк.
|
||
PHP умеет автоматически генерировать эти файлы и сохранять
|
||
их в файловой системе, а не выводить на печать,
|
||
чтобы сформировать серверный кеш для динамического содержимого.
|
||
</para>
|
||
<para>
|
||
Одно из значительных преимуществ языка PHP — поддержка
|
||
<link linkend="refs.database">широкого круга баз данных</link>.
|
||
Написать веб-страницу с поддержкой базы данных невероятно просто.
|
||
Можно использовать модуль конкретной базы данных
|
||
(например, <link linkend="book.mysqli">mysql</link>) или модуль
|
||
уровня абстракции наподобие <link linkend="book.pdo">PDO</link>,
|
||
или соединиться с базой данных с поддержкой стандарта
|
||
открытого подключения к базе данных (ODBC) через модуль <link linkend="book.uodbc">ODBC</link>.
|
||
Для других баз данных, например, CouchDB, можно использовать библиотеку <link linkend="book.curl">cURL</link>
|
||
или <link linkend="book.sockets">сокеты</link>.
|
||
</para>
|
||
<para>
|
||
PHP также поддерживает взаимодействие с другими службами
|
||
через протоколы LDAP, IMAP, SNMP, NNTP, POP3, HTTP,
|
||
COM (на платформах Windows) и многие другие. PHP также
|
||
умеет открывать необработанные сетевые сокеты и взаимодействовать по другим протоколам.
|
||
PHP поддерживает стандарт обмена сложными структурами
|
||
данных WDDX практически между всеми языками веб-программирования.
|
||
Обращая внимание на взаимодействие между разными
|
||
языками, следует упомянуть о поддержке объектов языка Java и возможности
|
||
использовать их как PHP-объекты.
|
||
</para>
|
||
<para>
|
||
PHP умеет <link linkend="refs.basic.text">обрабатывать текст</link>,
|
||
включая Perl-совместимые регулярные выражения (<link linkend="book.pcre">PCRE</link>)
|
||
и другие модули и инструменты <link linkend="refs.xml">для обработки и доступа
|
||
к XML-документам</link>. PHP стандартизирует XML-модули
|
||
на прочной основе библиотеки <link linkend="book.libxml">libxml2</link>,
|
||
а также расширяет набор инструментов для обработки XML-документов за счёт добавления поддержки модулей
|
||
<link linkend="book.simplexml">SimpleXML</link>, <link linkend="book.xmlreader">XMLReader</link>
|
||
и <link linkend="book.xmlwriter">XMLWriter</link>.
|
||
</para>
|
||
<para>
|
||
Другие интересные модули распределили
|
||
как <link linkend="extensions">в алфавитном порядке</link>,
|
||
так и <link linkend="funcref">по категориям</link>.
|
||
Существуют также дополнительные <link linkend="install.pecl.intro">PECL-модули</link>,
|
||
часть которых описывает это руководство, например, модуль <link xlink:href="&url.xdebug;">XDebug</link>.
|
||
</para>
|
||
<para>
|
||
Как видно, этой страницы недостаточно, чтобы
|
||
перечислить все возможности и преимущества языка PHP.
|
||
Прочитайте разделы «<link linkend="install">Установка и настройка</link>»
|
||
и просмотрите главу «<link linkend="funcref">Справочник
|
||
по функциям</link>», которые дают дополнительные сведения
|
||
о модулях, которые упоминает эта часть руководства.
|
||
</para>
|
||
</section>
|
||
|
||
</chapter>
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|