Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Интернет технологии -> PHP -> Программирование на PHP


PHP FAQ (Frequently Asked Questions)

Составитель - Александр Грималовский. Присылайте пары вопрос-ответ, а так же просто вопросы.

Часто задаваемые вопросы о PHP и других вещах, имеющих непосредственное отношение к этому языку.

  1. Общая информация
    1. Что такое PHP?
    2. Где его взять?
    3. Что мне нужно, чтобы начать работать с PHP?
    4. Где взять информацию о PHP?
  2. Инсталляция
    1. Установка дистрибутива PHP для Windows
    2. Инсталляция Apache+PHP CGI
    3. Инсталляция Apache+PHP module
  3. Настройка параметров PHP в php.ini

Общая информация

Что такое PHP?

PHP - это скриптовый язык, разработанный для быстрого и удобного создания динамических web страниц. PHP работает на стороне сервера и может использоваться как сам по себе, так и для "встраивания" кусков динамического кода в уже имеющиеся HTML страницы. С помощью PHP можно создать практически все - от маленьких домашних страничек до больших и сложных порталов. PHP идеально сочетается с web-сервером Apache (хотя работает и с любым другим web-сервером), имеет встроенную поддержку многих SQL серверов (MySQL, PostgreSQL, InterBase, Oracle, MS SQL и многих других). Для PHP написано множество модулей, расширяющих возможности языка, предоставляющих интерфейсы для работы со многими известными библиотеками (gd, iconv, libxml2, ming, pcre и многими другими). Имеется встроенная поддержка многих протоколов: HTTP, FTP, LDAP, SMTP, POP, IMAP... Существует поддержка для работы со многими современными технологиями: XML, XSLT, Flash, PDF, COM, CORBA и другими... И еще многое, многое другое.

Сам язык имеет удобный, легкий для понимания и вместе с тем гибкий и очень мощный синтаксис. Во многом он похож на такие языки как C/C++, Java, Perl, однако имеет и свои, присущие только ему особенности. Человеку, знакомому хотя бы с одним из этих языков будет достаточно лишь нескольких минут, чтобы начать работать с PHP.

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

вернуться к списку вопросов

Где его взять?

Интерпретатор PHP является бесплатным open source продуктом. Он доступен для как для различных версий Linux, FreeBSD, Unix, так и для Windows платформы. Это означает, что вы можете вполне легально использовать PHP для создания своих сайтов, а также для любых других коммерческих или некоммерческих целей, причем совершенно бесплатно. Кроме того вы можете также бесплатно получить полные исходные тексты этого продукта.

Официальным сайтом PHP является www.php.net. Здесь доступны для скачивания и свободного использования дистрибутивы последних версий PHP (как в виде исходных текстов, так и в виде готового к использованию продукта для Windows), документация и многое другое.

Кроме того, для пользователей Windows можно порекомендовать еще один ресурс, предоставляющий дистрибутивы PHP именно для этой платформы: www.php4win.com. Как правило эти дистрибутивы более полные, т.е. содержат большее количество готовых к использованию модулей для PHP.

вернуться к списку вопросов

Что мне нужно, чтобы начать работать с PHP?

Вам необходимо иметь как минимум 3 вещи, чтобы начать работать с PHP:

  1. Непосредственно интерпретатор PHP

См. предыдущий вопрос, чтобы узнать, где можно взять дистрибутив PHP. Лучше всего брать последнюю версию - официальные дистрибутивы PHP как правило очень стабильны в работе. Если вы работаете с Linux, то, возможно, PHP входит в ваш дистрибутив Linux, но, как правило, это не самая последняя версия. Пользователям Unix придется откомпилировать PHP самостоятельно, для пользователей Windows распространяются готовые к использованию бинарные файлы.

  1. Web-сервер

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

  • Как CGI-приложение. В этом режиме PHP может работать с любым web-сервером, но общее быстродействие системы будет ниже, поскольку PHP в данном случае будет внешним приложением по отношению к web-серверу.
  • Как модуль web-сервера. Этот режим работы более предпочтителен для реальных серверов в интернете, поскольку обеспечивает более высокую производительность системы. Кроме того, некоторые функции (например HTTP аутентификация) возможны лишь в этом режиме работы PHP. Однако этот режим работы можно использовать не всегда, т.к. есть несколько ограничений. Во-первых, необходимо использовать web-сервер, для которого существует модуль PHP. На данный момент поддерживаются следующие web-сервера:
    • Apache web server
    • Microsoft IIS (ISAPI)
    • Netscape Enterprise Server (NSAPI)
    Во-вторых, поскольку в данном случае PHP является частью приложения web-сервера, то любой сбой в работе PHP приведет уже не просто к закрытию PHP как приложения - в этом случае будет закрыто все приложение web-сервера. А поскольку работа PHP в качестве модуля web-сервера - довольно новая возможность, на данный момент для нее не гарантируется по-настоящему стабильная работа. Поэтому прежде чем использовать этот режим работы PHP - необходимо убедиться в том, что он стабильно работает с вашим кодом.

См. следующую секцию этого FAQ, где описан процесс инсталляции PHP для работы с web-серверами.

  1. Текстовый редактор

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

Первый и последний из них специально предназначены для PHP.

вернуться к списку вопросов

Где взять информацию о PHP?

Основным источником информации по PHP является официальный сайт этого языка - www.php.net. Именно здесь расположен PHP Manual, являющийся официальной документацией этого языка. Поскольку PHP постоянно совершенствуется, то PHP Manual - единственное описание PHP, которое всегда содержит описание всех последних изменений и дополнений в этом языке. Следует, правда, заметить, что даже в PHP Manual описаны не все последние дополнения, появляющиеся в PHP, поскольку всегда проходит какое-то время, прежде чем авторы этих дополнений найдут время для написания документации.

Официальный язык PHP, а значит и PHP Manual - английский. Хотя на www.php.net предлагаются переводы документации на различные языки (русского среди них, к сожалению нет) - гарантий их правильности и полноты вам никто не даст. Поэтому, если вы хотите всегда быть в курсе последних новшеств, появляющихся в PHP - вам придется использовать PHP Manual.

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

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

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

Кроме того, со временем к ним сможет присоединиться и наш сайт :-)

вернуться к списку вопросов

Инсталляция

Установка дистрибутива PHP для Windows

В этом разделе рассматривается установка дистрибутива бинарного PHP для Windows, полученного с www.php.net или www.php4win.com.

  1. Распакуйте содержимое архива с дистрибутивом PHP туда, где он будет установлен. Я бы советовал использовать для этих целей каталог DRIVE:\usr\local\php4, где DIRVE: - имя диска, куда вы собираетесь устанавливать PHP. Такой путь, несколько странный для Windows, является между тем обычным местоположением PHP в Unix. Некоторые библиотеки, с которыми работает PHP, требуют наличия своих файлов по подобному пути.
  2. Скопируйте содержимое каталога dlls в системный каталог Windows (обычно windows\system для Win95/98 или winnt\system32 для WindowsNT/2000).
  3. Если вы собираетесь использовать PHP в качестве модуля web-сервера - скопируйте файл php4ts.dll в системный каталог Windows.
  4. Если вы собираетесь использовать SNMP функции в PHP - скопируйте содержимое каталога mibs в DRIVE:\usr\mibs.
  5. Если вы собираетесь использовать PEAR в своих скриптах - скопируйте содержимое каталога pear туда, где вы сможете вызывать его из своих скриптов.
  6. Переименуйте файл php.ini-dist в php.ini. Если вы собираетесь использовать PHP в качестве модуля web-сервера - скопируйте файл php.ini в корневой каталог Windows.
  7. Откройте файл php.ini в текстовом редакторе. Вам необходимо установить значения некоторых параметров. ВНИМАНИЕ! Здесь даны минимальные инструкции по настройке параметров PHP, необходимые лишь для того, чтобы запустить его в работу. Более подробно процесс настройки параметров PHP см. в соответствующем разделе. Также имейте в виду, что все пути даны лишь для примера и зависят от того, куда именно вы установили PHP.
; Путь к каталогу, в котором лежат модули PHP
extension_dir = DRIVE:\usr\local\php4\extensions   
; Установка данного параметра необходима лишь если вы планируете использовать сессии в ваших скриптах.
; Установите путь к временному каталогу вашей системы или создайте специальный каталог для этих целей.
session.save_path = c:\windows\temp

После выполнения всех перечисленных выше действий вы можете с большой вероятностью быть уверены, что PHP, как таковой, установлен в вашей системе. Однако для того, чтобы начать работать с ним, необходимо связать вместе PHP и имеющийся у вас web-сервер. В следующих разделах показано, как связать вместе PHP и Apache.

вернуться к списку вопросов

Инсталляция Apache+PHP CGI

Внимание: здесь и далее в этом разделе подразумевается, что дистрибутив PHP установлен в каталог c:\usr\local\php, а Apache установлен в каталоге c:\usr\local\apache. Если это не так - не забудьте поменять приводимые далее по тексту пути на те, где расположены PHP и Apache на вашей системе. Также подразумевается, что ваш Apache нормально настроен и работает, т.к. проблемы настройки Apache выходят за рамки этого FAQ.

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

  1. Откройте файл конфигурации Apache (обычно conf/httpd.conf в каталоге Apache) в текстовом редакторе.
  2. Добавьте следующие строчки в этот файл:
AddType application/x-httpd-php .php .php4 .php3 .phtml
ScriptAlias /php4/ "c:/usr/local/php4/"
Action application/x-httpd-php "/php4/php.exe"

В первой строчке через пробел перечислены расширения файлов, которые должны обрабатываться интерпретатором PHP. В данном случае это .php .php4 .php3 .phtml. Во второй строке в качестве значения параметра в кавычках вам необходимо указать путь к каталогу, в котором установлен PHP. ВНИМАНИЕ! Обратите внимание на наличие слеша (/) в конце, он обязателен! Также необходимо обратить внимание на то, в качестве разделителя в путях используется /, а не \.

вернуться к списку вопросов

Инсталляция Apache+PHP module

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

  1. Убедитесь, что файл php4ts.dll скопирован в системный каталог Windows (обычно windows\system для Win95/98 или winnt\system32 для WindowsNT/2000). Также убедитесь, что этот файл соответствует установленной у вас версии PHP, т.к. если вы, к примеру, установили новую версию PHP и забыли скопировать этот файл - PHP может отказаться работать.
  2. Убедитесь, что файл php.ini скопирован в корневой каталог Windows.
  3. Откройте файл конфигурации Apache (обычно conf/httpd.conf в каталоге Apache) в текстовом редакторе.
  4. Добавьте следующие строчки в этот файл:
    LoadModule php4_module c:\usr\local\php4\sapi\php4apache.dll
    AddType application/x-httpd-php .php .php4 .php3 .phtml

    В первой строчке вам необходимо изменить путь на ваш путь к каталогу, в котором установлен PHP. Во второй строчке через пробел перечислены расширения файлов, которые должны обрабатываться интерпретатором PHP. В данном случае это .php .php4 .php3 .phtml.

  5. Перезапустите Apache. В Windows NT/2000 для этого выполните следующие команды:
    net stop apache
    net start apache
    

    В Windows95/98 вам придется перезагрузить машину.

вернуться к списку вопросов

Настройка параметров PHP в php.ini

PHP имеет множество настроек, описанных в файле php.ini. Этот файл должен быть доступен в системных путях поиска для того, чтобы PHP мог использовать эти настройки. Обычно для этого достаточно хранить этот файл в том же каталоге, где расположен сам PHP, но если PHP сконфигурирован для работы в качестве модуля web-сервера, то этот файл необходимо скопировать в каталог, явно доступный в системных путях поиска. См. раздел инсталляции PHP для получения более подробных инструкций.

Здесь рассматриваются основные параметры PHP, разделенные по категориям. Список параметров в основном соответствует версии PHP 4.0.6, однако здесь рассматриваются только основные параметры. Полный список параметров с комментариями по каждому из них можно увидеть непосредственно в php.ini, а также в соответствующем разделе PHP Manual.

Значения параметров, имеющих варианты "да/нет" могут быть следующими:

ДА - 1, On, True or Yes
НЕТ - 0, Off, False or No

short_open_tag

Включение поддержки сокращенного варианта PHP тегов. Если эта опция отключена, то PHP код будет распознаваться только внутри <?php ?> тегов. Если включена - то разрешено использование тегов <? ?>. Хорошим тоном считается не использовать сокращенной записи PHP тегов.

asp_tags

Включение поддержки ASP тегов <% %> в качестве PHP тегов.

output_buffering

Включение буферизированного вывода PHP. Использование буферизированного вывода позволит вам, к примеру, использовать любые функции, оперирующие с HTTP header'ами (header(), setcookie()) в любом месте вашего скрипта, не заботясь о том, чтобы не выводить ничего до этого. Вы можете управлять буферизированным выводом и из ваших скриптов (см. раздел Output Control Functions в PHP Manual). Помните, что при включенной буферизации вывода результат работы скрипта будет возвращен браузеру только после того, как будет закончена работа скрипта, что может привести к более медленной работе сайта.

safe_mode

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

max_execution_time

Максимальное время работы PHP скрипта (в секундах). Спустя это время работа скрипта будет принудительно завершена и выдана соответствующая ошибка. Позволяет избежать проблем с "зациклившимися" скриптами.

memory_limit

Максимальный объем памяти, который может быть выделен для нужд скрипта. Также позволяет избежать проблем с "зациклившимися" скриптами.

error_reporting

Маска для сообщений об ошибках, которые должны генерироваться PHP. Задается в виде логического выражения с использованием набора предопределенных констант, описывающих различные типы ошибок. Список этих констант, а также правила задания выражений можно найти в php.ini.

display_errors

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

log_errors

Если включена эта опция, то все ошибки будут записываться в log файл, определенный следующей опцией.

error_log

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

track_errors

Если включена эта опция, то текст последней ошибки будет всегда доступен из переменной $php_errormsg.

register_globals

Этот параметр определяет, будут ли т.н. EGPCS переменные (Environment, GET, POST, Cookies, Session) доступны в виде глобальных переменных PHP. Если этот параметр разрешен, то переменные доступ к этим переменным будет осуществляться также, как и к любым другим глобальным переменным PHP:

echo "Версия HTTP протокола: ".$SERVER_PROTOCOL;
echo "Параметр query string: ".$param1;
echo "Элемент формы: ".$txtFirstName;
echo "Мои Cookie: ".$myCookie;
echo "Мои сессионные переменные: ".$mySessionVar;

Или то же самое, но с отключенным параметром:

echo "Версия HTTP протокола: ".$HTTP_ENV_VARS['SERVER_PROTOCOL'];
echo "Параметр query string: ".$HTTP_GET_VARS['param1'];
echo "Элемент формы: ".$HTTP_POST_VARS['txtFirstName'];
echo "Мои Cookie: ".$HTTP_COOKIE_VARS['myCookie'];
echo "Мои сессионные переменные: ".$HTTP_SESSION_VARS['mySessionVar'];

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

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

variables_order

Этот параметр используется в связке с предыдущим параметром и определяет, в какой последовательности производится регистрация глобальных EGPCS переменных. Например, при значении по умолчанию (EGPCS) переменные, переданные через GET будут замещены переменными, переданными через POST и имеющими то же имя. POST-переменные (а также Environment и GET переменные) в свою очередь могут быть замещены значениями Cookies с такими же именами и т.д.

magic_quotes_gpc

Включение этого параметра приведет к тому, что все данные, поступающие со стороны клиента (через GET, POST или Cookie) будут обработаны: все кавычки (' и ") в них будут замещены соответственно сочетанием \' или \". С одной стороны это очень удобно, если планируется, например, вставлять эти данные в строки, передаваемые, например, SQL серверу. Но с другой стороны это может привести к путанице, поэтому обычно надежнее использовать для этой цели функции addslashes() и stripslashes().

magic_quotes_runtime

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

magic_quotes_sybase

Включение этой опции приведет к тому, что одинарные кавычки (') будут сдваиваться (''). Это необходимо для некоторых SQL серверов, которые поддерживают только такой способ вставки кавычек в строки (InterBase, MS SQL, Sybase и некоторые другие).

auto_prepend_file

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

auto_append_file

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

extension_dir

Путь к каталогу, где лежат модули PHP. Обычно это подкаталог extensions в корневом каталоге PHP.

вернуться к списку вопросов

Содержание

 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.