Прежде всего, ответим на вопрос:
что же такое PHP? PHP - это система разработки скриптов, включающая в себя CGI -
интерфейс, интерпретатор языка и набор функций для доступа к базам данных и
различным объектам WWW. По личному мнению автора этой статьи, на данный момент
PHP является наиболее удобным и мощным средством разработки приложений WWW и
интерфесов к БД в Интернет.
1.1. Создание скриптов на
PHP.
Система PHP устанавливается на
Web-сервер в качестве обработчика определенного mime - типа, аналогично системе
SSI (Server Side Include), то есть PHP-скрипт представляет собой обычный
html-документ с редкими (или не очень :) вставками тэгов PHP - комманд.
Благодаря этому, создание и отладка скриптов PHP значительно проще, чем отладка
и создание скриптов на других языках (например C или
Perl). Вместе с тем, PHP обеспечивает разработчику очень
большие возможности при разработке приложений web или активных страниц, так как
облдает значительным набором функций и относительно большой
гибкостью.
1.2. Синтаксис
PHP.
По своему синтаксису язык PHP
наиболее походит на классический С, хотя видны и некоторые заимствования из Java
и Perl. По крайней мере, программист на С очень быстро освоит данный язык и
сможет использовать его с максимальной эффективностью. В
принципе, в PHP есть практически все операторы и функции, имеющиеся в
стандартном GNU С (или их аналоги), например есть циклы (while, for), операторы
выбора (if, switch), функции работы с файловой системой и процессами (fopen,
*dir, stat, unlink, popen, exec), функции ввода-вывода (fgets,fputs,printf) и
множество других... Одним из самых больших отличий PHP от
C - является использование переменных.
1.3. Переменные в
PHP.
Первое, что бросается в глаза при
использовании PHP - это отсутствие типизированных переменных, хотя некая
типизация и присутствует, но тип переменной в каждом конкретном операторе
зависит от контекста, например переменная $str="10"
при использовании ее в операторе echo($str) будет
иметь строковый тип (да, да, про char * можно забыть),
а в выражениии типа $str=$str+1 будет обрабатываться
как число. Хотя это может показаться недостатком, данная
особенность PHP имеет свой смысл, так как при обработке результатов форм ввода
html очень трудно определить первоначальный тип переменной, и кроме того, все
перобразования типов можно свалить на php (и забыть про
itoa и
atoi). Также одной из интересных
возможностей PHP является автоматический перенос переменных окружения и
параметров скрипта в переменные PHP, причем отпадает необходимость перевода
URL-кодированных значений переменных в нормальные, например при передаче скрипту
параметра str=text%20with%20spaces ( запрос типа GET
/some_script.php?str=text%20with%20spaces HTTP/1.0 ) будет образована
переменная $str="text with spaces".
2. Возможности
языка.
PHP имеет целый ряд встроенных функций
для обработки объектов самого различного рода. Для
примера мы вкратце рассмотрим следующие разделы, наиболее важные с моей точки
зрения :
Работа со строками в php гораздо
богаче, чем в С. Кроме того, что существуют практически все стандартные функции
языка С, наличиствует множество дополнительных функций и возможностей,
которые как ориентированы на web, так и просто облегчают работу. В частности
конкатенация строк осуществляется следующим оператором:
$result_str=$first_str . $second_str;
В качестве примеров полезных для работы в web функций могут служить функции
htmlspecialchars() , преобразующая в строке символы
типа & в последовательность & или функция
urlencode(string str), преобразующую символы русского
алфавита в последовательность %XX, где ХХ - шестнадцатеричный код символа. Также
весьма интересны функции работы с регулярными выражениями, например
$str=ereg_replace("/usr/local/([^/]*)/filename",
"\1","/usr/local/dirname/filename"); даст нам строку
$str="dirname". Или например функция
explode, лично меня очень порадовшая: данная функция
позволяет преобразовать строку в массив значений, например для формирования
следующего элемента выбора
Понедельник Вторник Среда
Четверг Пятница Суббота
Воскресенье
был использован следующий код:
<?php
$strarray=explode(":","Понедельник:Вторник:Среда:Четверг:Пятница:Суббота:Воскресенье");
?> <select
name="dayofweek" size="1"> <?php
for($i=0;$i<7;$i++) { ?> <option><?php
echo($strarray[$i]); ?></option> <?php }
?> </select>
2.2. Работа с файлами и
процессами.
Работа с файлами в PHP практически ничем
не отличается от работы с файлами в С, те-же самые функции работы с
потоками или с блоковыми файлами, fopen, fclose, fread, fgets, fputs, fwrite, но
есть одна маленькая, но очень приятная возможность работать с файлами по их URL,
например возможны следующие конструкты : $fp
= fopen( "http://www.soft.ru/", "r" ); $fp = fopen( "ftp://www.soft.ru/", "r"
); И, одной из самых больших прелестей PHP, по
моему мнению является возможность использовать другие программы, например для
получения списка текущей директории использовать стандартную команду
ls, или отправлять почту с помощью
sendmail. Это достигается с помощью того, что php
позволяет создать процесс, и работать с его стандартным вводом или стандартным
выводом как с обычным потоком. (команда popen,
например $fp=popen("/bin/ls -l","r"); ).
2.3. Работа с базами
данных.
В системе PHP работа с БД
осуществляется в основном путем работы с различными SQL-серверами, причем
SQL-сервер в любом случае рассматривается как удаленный, то есть создается
сетевое соединение. Благодаря этому возможно открывать из одного скрипта либо
несколько пользовательских сессий, либо работать с различными SQL-серверами.
После установки соединения с сервером, выбирается рабочая база данных, после
чего можно отправлять и обратывать запросы (так как SQL является
клиент-серверной архитектурой, любая работа с данными осуществляется с помощью
запросов к SQL-серверу на получение или изменение данных). При выполнении
запроса создается некий объект, в котором хранится результат выполнения запроса,
после чего можно получать отдельные ряды, путем выполнения специальных функций.
Если вы когда-нибудь работали с SQL - вы очень быстро разберетесь с
использованием функций работы БД в PHP.
В качестве примера, приведем код, который производит
выборку из простейшей таблицы, содержащей номера телефонов и наимонования
компаний. В результате работы кода получилось следующее:
Название фирмы
Телефон
контора Купи-продай |
222-33-44 |
ГлавСовСнаб |
333-44-55 |
MuSt DiE |
444-55-66 |
А сформирована дання таблица была следующим php
- кодом:
<!-- Начало таблицы
--> <table width="50%" border="1"
cellspacing="0" cellpadding="0" align="CENTER">
<tr> <th width="75%">Название
фирмы</th> <th
width="25%">Телефон</th> </tr> <script language="php"> $sock=msql_connect( "localhost"); //Соединяемся
с SQL - сервером
msql_select_db(
"test",$sock); //Выбираем БД
$R=msql_query( "select
* from db",$sock);
//Делаем запрос $T=msql_fetch_array($R); //Получаем
первый ряд из результата выполнения
запроса while (is_array($T)) { //Пока
есть ряды в запросе (т.е. $T -
массив) </script>
<tr> <td> <?php echo $T[name];
//Распечатываем поле name
из текущего ряда
?></td> <td align="center"> <?php echo
$T[phone]; //Распечатываем поле phone из
текущего ряда ?></td>
</tr> <?php
$T=msql_fetch_array($R); //
Считываем следующий ряд ?> <?php } // Конец
цикла while ?>
</table> <!-- Конец таблицы -->
3. Использование
PHP.
Итак, постепенно мы приходим к
следующему выводу: использование PHP целесообразно при создании часто
обновляемых либо громоздких в написании программ, скорость выполнения для
которых не является критическим параметром (имеется в виду, что если разница
между временем выполнения скрипта на С и скрипта на PHP составляет 10-20%, то
вполне можно предпочесть скорость разработки скорости выполнения) и необходимо
быстрое создание полнофункционального приложения. (если интересно мое личное
мнение то кроме PHP я использую только C, и то, очень редко.)
|