Разрешается использовать только для ознакомления, по вопросам приобретения
или распространения книг обращаться к их авторам или издательствам.
(с) Народная библиотека BIGLIB.COM.UA
--------------------------------------------------------------------------
Автор неизвестен
PHP - система разработки скриптов
1. 1. Введение
Прежде всего, ответим на вопрос: что же такое 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 имеет целый ряд встроенных функций для обработки объектов самого
различного рода.
Для примера мы вкратце рассмотрим следующие разделы, наиболее важные с моей
точки зрения :
2.1. Обработка строк.
Работа со строками в 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 DiE444-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, и то, очень редко.)
материал взят с http://www.biglib.com.ua