PHP - система разработки скриптов.

Автор: NAS Сайт: http://soft.ru/internet/
   
   РНР - это...
   Это новая технология разработки интерактивных динамических страниц, очень удобный язык программирования серверных скриптов.
   
   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%20 with%20spaces HTTP/1.0 ) будет образована переменная $str="text with spaces".
   
   
   2. Возможности языка.
   
    PHP имеет целый ряд встроенных функций для обработки объектов самого различного рода. ( PHP 3.0 Functions reference )
   Для примера мы вкратце рассмотрим следующие разделы, наиболее важные с моей точки зрения :
    2.1. Обработка строк;
    2.2. Работа с файлами и процессами;
    2.3. Работа с базами данных;
   
   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 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, и то, очень редко.)
   
   

Опубликовано: HTTP://WWW.R-T-F-M.INFO, pauk ©® 2000-2011.
All rights reserved.
При перепечатки ссылка на сайт обязательна.
Мнение администрации сайта не всегда совпадает с мнением автора..