Общие сведения о PHP
Язык PHP (Personal Home Page Tools, или, как он теперь называется, PHP: Hypertext Preprocessor) является представителем семейства скриптовых языков программирования. Название у языка говорящее, основная область его применения — разработка различных интернет-приложений (интернет-скриптов) и именно в этой области PHP наиболее распространён.
PHP — краткая история создания
Корнями PHP уходит к Perl, затем интерпретатор языка претерпел изменения в сторону большей веб-ориентированности и был переписан на С. Соответственно, PHP включает в себя черты обоих «родителей» — синтаксис похож на синтаксис С, ассоциативные массивы (хэши) и цикл foreach
заимствованы у Perl.
PHP — основные особенности и функции
Основная особенность PHP — штатная возможность встраивать исполняемый код в html-код веб-страниц, что делает его очень удобным для создания динамически изменяющихся страниц, при этом шаблоны страниц одновременно являются и статическими, и динамическими элементами.
Функции PHP для веб-разработки
Помимо того, PHP обладает богатым набором встроенных инструментов для веб-программирования, среди которых стоит отметить основные:
- Встроенные массивы данных, в которые автоматически загружаются переменные окружения сервера, а также параметры, извлекаемые из GET и POST-запросов;
- В язык встроена поддержка основных СУБД (семейство SQL и другие распространённые СУБД);
- Возможность отправлять HTTP-заголовки в автоматическом режиме;
- Поддержка работы с сессиями, cookies, HTTP-авторизацией
- Работа с файлами (в виде сокетов, удалённых и локальных файлов);
- Обработка форм, включая XForms, обработка загружаемых на сервер файлов;
PHP и графические приложения
Кроме своего прямого предназначения — создания веб-страниц, PHP также может использоваться для разработки кросс-платформенных графических приложений, среды для разработки которых так же, как и сам язык, распространяются на условиях open-source.
Пример кода на PHP — создание и обработка веб-формы
Ниже приведён пример кода на PHP, выполняющий обработку html-формы. В примере пользователь вводит имя и выбирает пол, после чего нажимает кнопку «Ответить». PHP-скрипт получает данные из формы, производит над ними заданные действия и распечатывает результат в браузер.
Проверка имени пользователя не осуществляется, поскольку данные из формы никуда дальше не иду, но если вы планируете передавать их в рабочий скрипт или в системную утилиту — не лишним будет сделать проверку регулярным выражением (навроде такого: /^ [^/\.$?&*] $/ix
) для отсечения ввода символов, которые в имени встречаться не должны. А при передаче системным утилитам пользовательского ввода — дополнительно использовать escapeshellarg
.
Пример веб-формы
Код для обработки формы на PHP
<form name="PHP_example_web_form" action="" method="post">
<table rows="2" cellspacing="8" cellpadding="4">
<tr><td>Как тебя зовут: </td><td><input type="text" name="u_name" value="" size="10" maxlength="20" />?</td></tr>
<tr><td>Ты <label><input type="radio" name="sex" value="m" checked="checked">мальчик</label></td>
<td> или <label><input type="radio" name="sex" value="w">девочка</label>?</td></tr>
</table>
<input type="submit" value="Ответить" />
</form>
<?php
// если в скрипт было что-то передано - начать обработку
if(count($_POST)>0){
// если переданное имя пользователя не пустое - продолжаем
if(count_chars($_POST['u_name'])>0){
unset($prefixes_m); // на всякий случай очистить массив
unset($prefixes_w); // то же
// если пол указан как мужской - выбрать прилагательное в мужском роде
if($_POST['sex'] === 'm'){
// массив с прилагательными
$prefixes_m = array('мужественный', 'великий', 'сообразительный', 'учёный', 'хитрый');
// выборка случайного элемента из массива
$prefix = $prefixes_m[rand(0,count($prefixes_m) - 1)];
}
// иначе если пол - женский - выбрать прилагательное женского рода
elseif($_POST['sex'] === 'w'){
$prefixes_w = array('прекрасная', 'нежная', 'восхитительная', 'обаятельная', 'неповторимая');
$prefix = $prefixes_w[rand(0,count($prefixes_w) - 1)];
}
// распечатать результат
print '<br /><hr><p>';
print '<div title="Приветствие" class="php-test" contenteditable="true">';
print 'Привет, '.$prefix .' '. $_POST['u_name'].'!';
print '</div></p>';
} // конец обработки имены
} // конец обработки формы
?>