სამშაბათი, 23.04.2024, 23:51
http://roma.ge
მთავარი რეგისტრაცია შესვლა
მოგესალმები, სტუმარი · RSS
[ ახალი შეტყობინებები · მონაწილეები · ფორუმის წესები · ძებნა · RSS ]
  • გვერდი 1 დან
  • 1
  • 2
  • »
მეზღვაურთა გაერთიანებული ფორუმი » ☜♡☞ მეზღვაურთა ფორუმი ☜♡☞ » ☜♡☞ კომპიუტერი, ინტერნეტი და პროგრამირება ☜♡☞ » Изучение PHP
Изучение PHP
SEAMANთარიღი: შაბათი, 11.09.2010, 21:26 | შეტყობინება # 1
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
Интерфейс CGI

Термин CGI (Common Gateway Interface — Общий шлюзовой интерфейс) обозначает набор соглашений, которые должны соблюдаться Web-серверами при выполнении ими различных Web-приложений. Фактически, до недавнего времени все Web-программирование представляло собой программирование CGI-приложений. В последнее время ситуация изменилась. И хотя CGI все еще остается негласным стандартом для Web-приложений, механизм работы CGI-программ несколько обновился.

Предположим, вы набираете в вашем браузере http://www.server.com/path/pict.gif

После введенного вами http-запроса сервер отсылает вам запрошенную картинку формата GIF (конечно, если она доступна по указанному адресу). Однако сказать, что вы запросили именно картинку нельзя. Почему? Дело в том, что файл pict.gif может не быть картинкой и даже вообще не существовать. Удивлены? А это ни что иное, как проявление CGI. Во-первых файл pict.gif и путь /path/ могут не существовать, поскольку администратор web-сервера может настроить алиасы (псевдонимы) для данного объекта на сервере. Во-вторых, файл pict.gif может сформировать CGI-программа "на лету", передав в браузер готовую картинку в формате GIF. Вот именно в таком случае были использованы средства CGI. Данный механизм абсолютно незаметен для пользователя ресурса, которому все равно, каким образом в его браузере появилась картинка - браузер передал файл или файл передала программа. Подобным образом можно передавать и html-документы, в таком случае они могут формироваться программой динамически и передаваться браузерам пользователей в ответ на их запросы.

Последний пункт особенно впечатляющ. Если вы прониклись его идеей, значит, вы поняли в общих чертах, что такое CGI. Как раз CGI обеспечивает все то, что выглядит так прозрачно для пользователя. Традиционно программы, работающие в соответствии с соглашениями CGI, называют сценариями — скорее всего из-за того, что в большинстве случаев их пишут на языках-интерпретаторах (например, на PHP или Perl ).

Таким образом, мы можем пользоваться мощным механизмом, который позволяет нам формировать документы "на лету".

Например, нам нужно, чтобы в каком-то документе проставлялись текущая дата и время. Разумеется, мы не можем заранее прописать их в документе — ведь в зависимости от того, когда он будет загружен пользователем, эта дата должна меняться. Зато мы можем написать сценарий (скрипт), который вычислит дату, вставит ее в документ и затем передаст его пользователю! Однако в построенной нами модели не хватает одного звена. Действительно, предположим, нам нужно, чтобы время в нашей странице проставлялось на основе часового пояса пользователя. Но как сценарий узнает, какой часовой пояс у региона, в котором живет этот человек (или какую-нибудь другую информацию, которую может предоставить пользователь)? Видимо, должен быть какой-то механизм, который позволит пользователю не только получать, но также и передавать информацию серверу (в данном случае, например, поправку времени в часах относительно Москвы). Это также обеспечивает CGI.


http://seaman.ge
 
SEAMANთარიღი: შაბათი, 11.09.2010, 21:26 | შეტყობინება # 2
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
Взаимодействие сервера с браузером

Что в дейтсвительности происходит, когда мы вводит какой-либо URL в адресную строку браузера? Браузер извлекает из URL протокол (http) и адрес web-сервера. Далее браузер обращается к серверу с HTTP-запросом, в котором указано, что необходимо получить документ /path/somefile.html. Сервер просматривает содержимое каталога, и если находит документ somefile.html, то возвращает его браузеру в обыкновенном текстовом виде. Кроме текста сервер также возвращает тип документа (формат). Например, если web-сервер сообщает, что файл somefile.html является текстом, то в окне браузера мы увидим HTML-код. Но обычно сервер сообщает браузеру, что somefile.html является гипертекстовым документом (html), поэтому мы увидим нормальную html-страницу. Если запрашиваемый браузером документ не будет найден, то сервер отправит нам сообщение об ошибке.

Предназначение интерфейса CGI

Интерфейс CGI выполняет функции шлюза между различными программами, установленными на web-сервере, и браузерами пользователей. Когда браузер запрашивает определенный ресурс, web-сервер запускает программу, которая уже возвращает результат в браузер пользователя. Использование CGI-программ требуется, когда необходимо в браузере пользователя отобразить страницу, сформированную на основе каких-либо действий пользователя. Например, вы ввели в форму какие-либо данные, а на их основе формируется посылаемая вам страница. CGI-программа может также определить IP-адрес ващего компьютера в сети, и на основе его определить вашу страну, в итоге передав вам html-документ на вашем родном языке!

Механизм CGI перенаправляет вывод программы на web-сервер, а тот, в свою очередь, в браузер пользователя. С точки зрения программы нет ничего необычного - она лишь выводит информацию. Абсолютно любая программа не может быть CGI-прграммой, потому что перед своим выводом она должна вывести определенные заголовки сервера - указать хотя бы тип выводимой информации. Например, если мы хотим вывести картинку, мы должны отправить заголовок Content-type: image/gif. Если CGI-программе нужно передать параметры, то делается это очень просто - как и в случае с обычной программой. Например, нам нужно передать строку запроса name=Ivan&email=ivan@ivanov.com сценарию cgi.exe. Для этого необходимо вызвать программу cgi.exe с указанной строкой запроса: cgi.exe name=Ivan&email=ivan@ivanov.com.

Разделяют параметры с помощью символа &. Видели когда-нибудь на странице несколько полей ввода и переключателей, а под ними кнопку "Отправить"? Это и есть форма, с ее помощью
можно автоматизировать процесс передачи данных сценарию. Разумеется, сценарий опять же должен адекватно среагировать на эти параметры: провести разбор строки, создать переменные и.т.д. Следует обратить внимание на то, что все эти действия придется программировать вручную, если мы хотим воспользоваться языком Си. PHP разбирает параметры строки запроса самостоятельно.

Так вот, такой способ посылки параметров сценарию (когда данные помещаются в командную строку URL) называется методом GET. Фактически, даже если не передается никаких параметров (например, при загрузке статической страницы), все равно применяется метод GET. Однако, существует еще один распространенный способ — передача пераметров запроса методом POST. Методы передачи запросов мы рассмотрим ниже.

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

Вот так примерно и работает механизм CGI.


http://seaman.ge
 
SEAMANთარიღი: შაბათი, 11.09.2010, 21:27 | შეტყობინება # 3
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
Способы создания CGI-сценариев (скриптов)

CGI-программы часто написаны на каком-нибудь интерпретируемом языке (PHP, Perl, Bash, Phyton и др.) Также можно написать программу на компилируемом языке, например C, который и будет обрабатывать данные пользователя. Приведем пример CGI-программы на C:

Code
#include <time.h> // Нужна для инициализации функции rand()
#include <stdio.h> // Включаем поддержку функций ввода/вывода
#include <stdlib.h> // А это — для поддержки функции rand()
// Главная функция. Именно она и запускается при старте сценария.
void main(void) {
// инициализируем генератор случайных чисел
int Num; time_t t; srand(time(&t));
// в Num записывается случайное число от 0 до 9
Num = rand()%10;
// далее выводим заголовки ответа. Тип — html-документ
printf("Content-type: text/html\n");
// запрет кэширования
printf("Pragma: no-cache\n");
// пустой заголовок
printf("\n");
// выводим текст документа — его мы увидим в браузере
printf("<html><body>");
printf("<h1>Здравствуйте!</h1>");
printf("Случайное число в диапазоне 0-9: %d",Num);
printf("</body></html>");
}

Теперь мы можем откомпилировать данную программу в исполняемый (двоичный) файл cgi.exe и обращаться к нему, как к CGI-сценарию.

Далее мы, наконец, рассмотрим методы передачи запросов.


http://seaman.ge
 
SEAMANთარიღი: შაბათი, 11.09.2010, 21:28 | შეტყობინება # 4
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
Методы передачи данных GET и POST

Задумаемся на минуту, что же происходит, когда мы набираем в браузере строку somestring и нажимаем <Enter>. Браузер посылает серверу запрос somestring? Нет, конечно. Все немного сложнее. Он анализирует строку, выделяет из нее имя сервера и порт (а также имя протокола, но нам это сейчас не интересно), устанавливает соединение с Web-сервером по адресу сервер:порт и посылает ему что-то вроде следующего:
GET somestring HTTP/1.0\n
...другая информация...
\n\n

Здесь \n означает символ перевода строки, а \n\n — два обязательных символа новой строки, которые являются маркером окончания запроса (точнее, окончания заголовков запроса). Пока мы не пошлем этот маркер, сервер не будет обрабатывать наш запрос.

Как видим, после GET-строки могут следовать и другие строки с информацией, разделенные символом перевода строки. Их обычно формирует браузер. Такие строки называются заголовками (headers), и их может быть сколько угодно. Протокол HTTP как раз и задает правила формирования и интерпретации этих заголовков. Вот мы и начинаем знакомство с протоколом HTTP. Как видите, он представляет собой ни что иное, как просто набор заголовков, которыми обмениваются сервер и браузер, и еще пару соглашений насчет метода POST, которые мы вскоре рассмотрим.
Не все заголовки обрабатываются сервером — некоторые просто пересылаются запускаемому сценарию с помощью переменных окружения.

Переменные окружения представляют собой именованные значения параметров, которые операционная система (точнее, процесс-родитель) передает запущенной программе. Программа может с помощью специальных функций получить значение любой установленной переменной окружения, указав ее имя. Именно так и должен поступать CGI-сценарий, когда захочет узнать значение того или иного заголовка запроса. К сожалению, набор передаваемых сценарию заголовков ограничен стандартами, и некоторые заголовки нельзя получить из сценария никаким способом (ему просто недоступна соответствующая переменная окружения). Такие случаи мы будем оговаривать особо.

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


http://seaman.ge
 
SEAMANთარიღი: შაბათი, 11.09.2010, 21:28 | შეტყობინება # 5
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
Метод запроса GET

Формат запроса: GET сценарий?параметры HTTP/1.0

>>> Переменные окружения: REQUEST_URI; в переменной QUERY_STRING сохраняется значение и параметры, в переменной REQUEST_METHOD — ключевое слово GET.

Этот заголовок является обязательным (если только не применяется метод POST) и определяет адрес запрашиваемого документа на сервере. Также задаются параметры, которые пересылаются сценарию (если сценарию ничего не передается, или же это обычная статическая страница, то все символы после знака вопроса и сам знак опускаются). Вместо строки HTTP/1.0 может быть указан и другой протокол - например, HTTP/1.1. Именно его соглашения и будут учитываться сервером при обработке данных, поступивших от пользователя, и других заголовков.

Строка сценарий?параметры задается в том же самом формате, в котором она входит в URL. Неплохо было бы назвать эту строку как-нибудь более реалистично, чтобы учесть возможность присутствия в ней командных параметров. Такое название действительно существует и звучит как URI (Universal Resource Identifier - Универсальный идентификатор ресурса). Очень часто его смешивают с понятием URL (вплоть до того, что это происходит даже в официальной документации по стандартам HTTP). Под словом URL мы понимаем полный путь к некоторой Web-странице вместе с параметрами, а URI - это его часть, расположенная после имени (или IP-адреса) хоста и номера порта.


http://seaman.ge
 
SEAMANთარიღი: შაბათი, 11.09.2010, 21:28 | შეტყობინება # 6
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
Метод запроса POST

Формат запроса: POST сценарий?параметры HTTP/1.0

>>> Переменная окружения: REQUEST_URI; в переменной QUERY_STRING сохраняется значение и параметры, в переменной REQUEST_METHOD — слово POST.

Настал момент рассмотреть метод POST. Приведем сразу практический пример метода запроса POST:

POST /script.cgi HTTP/1.0\n
Content-length: 6\n
\n
Hello!

Сервер начнет обработку запроса, не дожидаясь передачи данных после маркера конца заголовков. Иными словами, сценарий запустится сразу же после отправки \n\n, а уж ждать или не ждать, пока придет строка Hello! длиной 6 байт - его дело. Последнее означает, что сервер никак не интерпретирует POST-данные (точно так же, как он не интерпретирует некоторые заголовки), а пересылает их непосредственно сценарию. Но как же сценарий узнает, когда данные кончаются, т. е. когда ему прекращать чтение информации, поступившей от браузера? В этом ему поможет переменная окружения Content-Length, и именно на нее следует ориентироваться.

Зачем нужен метод POST? В основном для того, чтобы передавать большие объемы данных. Например, при загрузке файлов через Web или при обработке больших форм. Кроме того, метод POST часто используют для эстетических целей: дело в том, что при применении GET, как вы, наверное, уже заметили, URL сценария становится довольно длинным и неизящным. Переданные сценарию параметры не отображаются в окне браузера, POST-запрос оставляет URL без изменения.


http://seaman.ge
 
SEAMANთარიღი: შაბათი, 11.09.2010, 21:29 | შეტყობინება # 7
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
Переменные окружения CGI

Непосредственно перед запуском сценария сервер передает ему некие переменные окружения с информацией. В определенных переменных содержатся некоторые заголовки, но, как уже говорилось, не все (получить все заголовки нельзя). Переменные окружения в языке PHP можно использовать как самые обыкновенные переменные. Переменные окружения делятся на четыре большие группы:
Формируемые сервером переменные;
Специальные переменные сервера Apache;
Переменные HTTP-полей запроса;
Переменные SSL-соединения (защищенного соединения).


http://seaman.ge
 
SEAMANთარიღი: შაბათი, 11.09.2010, 21:29 | შეტყობინება # 8
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
Заголовки HTTP

Заголовки HTTP используются для "общения" браузера и web-сервера, например, когда браузер запрашивает какой-либо документ, он посылает заголовок GET, а когда сервер возвращает тип документа, то он делает это ни как-нибудь, а в заголовке Content-type.

Мы уже частично рассматривали заголовки протокола HTTP, но теперь остановимся на них подробнее.

Итак, приведем список и краткое описание основных заголовков HTTP.

Заголовок Accept

Заголовок Accept предназначен для информирования сервера о типах данных, которые поддерживаются клиентом (браузером). В этом заголовке браузер перечисляет, какие типы документов он "понимает". Пере-
числение идет через запятую.

Используется переменная окружения HTTP_ACCEPT. Пример использования:

Accept: text/html, text/plain, image/jpeg

В последнее время вместо списка указывается значение *.*, что означает "все типы".

Заголовок Content-type

Данный заголовок предназначен для идентификации типа передаваемых данных. При этом заголовок Content-type использует переменную окружения CONTENT_TYPE. Обычно для этого заголовка указывается значение application/x-www-form-urlencoded. Таким образом, указывается формат, в котором все управляющие символы (т.е. символы, не являющиеся алфавитно-цифровыми) специально кодируются. О некоторых других MIME-типах вы можете узнать здесь.

Это тот самый формат передачи, который используется методами GET и POST.

Довольно распространен и другой формат, multipart/form-data.

Сервер никак не интерпретирует рассматриваемый заголовок, а просто передает его сценарию через переменную окружения.

Пример: Content-type: text/plain


http://seaman.ge
 
SEAMANთარიღი: შაბათი, 11.09.2010, 21:29 | შეტყობინება # 9
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
Заголовок Content-length

Этот заголовок содержит строку, в которой записана длина передаваемых данных в байтах при использовании метода передачи POST. За заголовком закреплена одноименная переменная CONTENT_LENGTH.

Если задействуется метод GET, то этот заголовок отсутствует, и значит, переменная окружения не устанавливается.

Заголовок Cookie

В этом заголовке хранятся все Cookies. Данный заголовок использует переменную окружения HTTP_COOKIE. Для установки Cookies используется заголовок Set-Cookie.

Заголовок GET

Об этом заголовке мы упоминали ранее.

Заголовок GET использует следующие переменные окружения:
REQUEST_URI - запрашиваемый идентификатор ресурса;
QUERY_STRING - передаваемые сценарию параметры;
REQUEST_METHOD - метод передачи информации. В данном случае эта переменная будет содержать значение GET.

Заголовок Location

Получив заголовок Location вместе с указанным в нем URL, сервер немедленно переходит по указанному URL, не дожидаясь, пока тело документа загрузится:

Пример: Location: http://www.somehost.com/

Заголовок POST

Этот заголовок использует те же переменные окружения, что и заголовок GET (переменная REQUEST_METHOD содержит значение POST). Напомним, что данные методом POST можно передавать в конце заголовков.

Напомним формат заголовка POST: POST сценарий?параметры HTTP/1.0

Заголовок Pragma

Данный заголовок используется для различных целей, одна из которых - это запрет кэширования документа.

Пример заголовка: Pragma: no-cache

Заголовок Server

Данный заголовок содержит название и версию программного обеспечения сервера. Например:

Server: Apache/1.3.23 (Unix) (Red-Hat/Linux) mod_ssl/2.8.7 OpenSSL/0.9.6b Dav/1.0.3 PHP/4.3.0 mod_perl/1.26 configured


http://seaman.ge
 
SEAMANთარიღი: შაბათი, 11.09.2010, 21:30 | შეტყობინება # 10
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
Заголовок Referer

С помощью этого заголовка можно узнать ссылающийся на нас сервер. Это бывает полезно, когда нам необходимо узать обратные ссылки, например, при анализе эффективности сетевой рекламы.

Переменная окружения: HTTP_REFERER.

Заголовок User-Agent

Содержит версию браузера. Например: User-Agent: Mozilla/5.0 (compatible; Konqueror/3.0.0-10; Linux).

Переменная окружения: HTTP_REFERER.

Некоторые комментарии по HTTP-заголовкам

Мы ознакомились с названиями заголовков и соответствующим им переменным окружения.

Необходимо помнить основные приципы:
Все символы в верхнем регистре;
В начале имен добавляется HTTP_
Символы "-" заменяются знаком подчеркивания "_".

Передача заголовков HTTP в PHP

В PHP есть встроенные функции для работы с заголовками HTTP.

Для передачи заголовков HTTP предназначена функция header()

Приведем практические примеры:

Code
<?php
header("Content-type: text/plain");
?>

Code
<?php
header("Location: http://www.example.com/"); /* Производит перенаправление браузера на другой ресурс */

/* Внимание! Убедитесь, что код, расположенный ниже не инсполняется */
exit;
?>

Code
<?php
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

// always modified
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);

// HTTP/1.0
header("Pragma: no-cache");
?>


http://seaman.ge
 
SEAMANთარიღი: შაბათი, 11.09.2010, 21:31 | შეტყობინება # 11
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
Коды ответов HTTP

Знание кодов возврата HTTP (ответов) весьма важно для системного администратора.

Вы, наверняка уже знаете, что протокол HTTP возвращает определенные коды ответов HTTP, которые являются кодами статуса HTTP-соединения.

Наверняка, код 404 - Not Found знаком всем, ведь с ним сталкиваются все без исключения пользователи интернета. Ошибка 404 является самой распространенной потому, что некоторые ссылки web-ресурсов указывают на отсутствующие страницы. Иногда все ошибки из диапазона 400...415 расцениваются как ошибка 404.

Код ответа HTTP 200 является кодом нормального завершения операции, вы его не видите, когда получаете страницу.

Всего определено 5 категорий кодов ответа HTTP. Каждая из этих категорий может содержать 100 кодов возврата.

Коды диапазона 100...199 являются информационными. С их помощью возвращается различная информация, относящаяся к запросу.

Диапазон 200...299 является диапазоном успешных операций. Коды, относящиеся к этому диапазону, сообщают об удачном завершении той или иной операции. К этому диапазону относятся также коды, сообщающие, что запрашиваемый файл пуст (no content), и сообщающие, что запрос был принят.

Диапазон кодов ответа 300...399 являются кодами перенаправления (redirect).

Коды диапазона 400...499 являются ошибками клиента. Например, пользователь может запросить несуществующий документ. К этому же диапазону относятся и ошибки "Forbidden" и "Unauthorized". И первая, и вторая сообщают, что у клиента нет доступа к определенному ресурсу. В первом случае доступ просто запрещен, а во втором случае клиент не является авторизированным.

Коды ответа 500...599 являются кодами ошибок сервера. Данные ошибки возникают при внутренней ошибке сервера или же при неправильном его конфигурировании. Во втором случае сервер просто не может правильно возвратить ответ на запрос. Этот тип ошибок встречается обычно, когда ошибку совершает сценарий (скрипт), расположенный на сервере.

Некоторые интерпретаторы скриптов, например, PHP никогда не допускают такой ошибки. Если в PHP-скрипте присуствуют ошибки, то интерпретатор PHP просто возвратит клиенту сообщение об этой ошибке. Со стороны сервера это будет выглядеть как нормальный ответ клиенту (браузеру). Например, в отличие от PHP-интерпретатора, Perl возвращает сообщение об ошибке в протокол HTTP.


http://seaman.ge
 
SEAMANთარიღი: შაბათი, 11.09.2010, 21:31 | შეტყობინება # 12
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
Типы MIME

Типы MIME используются для идентификации типа содержимого. Благодаря этому приложения смогут определять, какого вида данные присланы и в каком соответствии сети проводить их обработку. Перечень всех типов MIME, поддерживаемых вашей системой, находится в файле /etc/mime.types (Linux) и в C:\Program Files\Apache Group\Apache\conf (Windows-система). Тип MIME указывается в формате тип/подтип. Вот основные типы MIME:
application - приложение (программа или документ, связанный с программой). Например, application/rtf;
audio - аудиофайл (audio/mpeg);
image - графический файл (image/png);
text - текст (text/html - в формате HTML, text/plain - простой).

MIME - тип пересылаемых по сети данных указывается в заголовке Content-type.


http://seaman.ge
 
SEAMANთარიღი: შაბათი, 11.09.2010, 21:32 | შეტყობინება # 13
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
PHP и CGI

PHP является неплохой заменой CGI. Сейчас CGI приложения для web постепенно вытесняются PHP.

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

В PHP переданные сценарию параметры автоматически станут переменными сценария, с которыми можно работать, как с обыкновенными переменными. То же самое происходит с переменными окружения сервера. Следует упоминуть, что PHP поддерживает работу с различными базами данных (MySQL, PostgresSQL, Sybase, Informix, др.). Поддержка всех этих возможностей уже имеется в PHP.

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


http://seaman.ge
 
SEAMANთარიღი: შაბათი, 11.09.2010, 21:33 | შეტყობინება # 14
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
Синтаксис PHP

Общие понятия

Язык PHP специально предназначен для веб-программирования. PHP сочетает достоинства языков C и Perl и при этом весьма прост в изучении и обладает значительными преимуществами перед традиционными языками программирования.

Синтаксис PHP очень напоминает синтаксис языка C и во многом заимствован из таких языков как Java и Perl.

Программист С очень быстро освоит язык PHP и сможет использовать его с максимальной эффективностью.
В принципе, в PHP есть практически все операторы и функции, имеющиеся в стандартном GNU С (или их аналоги), например есть циклы (while, for), операторы выбора (if, switch), функции работы с файловой системой и процессами (fopen, *dir, stat, unlink, popen, exec), функции ввода-вывода (fgets,fputs,printf) и множество других...

Цель данного раздела - краткое ознакомление с основами синтаксиса языка PHP. Более подробную информацию по конкретным составляющим синтаксиса PHP вы найдете в соответствующих разделах.

PHP и HTML

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

Code
<html>
      <head>
          <title>Пример</title>
      </head>
      <body>

          <?  
          echo "Привет, я - скрипт PHP!";  
          ?>

      </body>
</html>

Вы уже наверняка заметили, что это классический скрипт, с которого начинают изучение языка программирования.

Обратите внимание, что HTML-код корректно обрабатывается интерпретатором PHP.

Начало сценария вас может озадачить: разве это сценарий? Откуда HTML-тэги <html> и <body>? Вот тут-то и кроется главная особенность (кстати, чрезвычайно удобная) языка PHP: PHP-скрипт может вообще не отличаться от обычного HTML-документа.

Идем дальше. Вы, наверное, догадались, что сам код сценария начинается после открывающего тэга <? и заканчивается закрывающим ?>. Итак, между этими двумя тэгами текст интерпретируется как программа, и в HTML-документ не попадает. Если же программе нужно что-то вывести, она должна воспользоваться оператором echo.

Итак, PHP устроен так, что любой текст, который расположен вне программных блоков, ограниченных <? и ?>, выводится в браузер непосредственно. В этом и заключается главная особенность PHP, в отличие от Perl и C, где вывод осуществляется только с помощью стандартных операторов.


http://seaman.ge
 
SEAMANთარიღი: შაბათი, 11.09.2010, 21:34 | შეტყობინება # 15
ყველაზე მაგარი ფორუმელი
ჯგუფი: ადმინისტრატორები
შეტყობინებები: 1423
რეპუტაცია: 1
სტატუსი: Offline
Разделение инструкций

Инструкции разделяются также как и в C или Perl - каждое выражение заканчивается точкой с запятой.

Закрывающий тег (?>) также подразумевает конец инструкции, поэтому два следующих фрагмента кода эквиваленты:

Code
<?php
      echo "Это тест";
?>

<?php echo "Это тест" ?>

Комментарии в PHP скриптах

Написание практически любого скрипта не обходится без комментариев.

PHP поддерживает комметарии в стиле 'C', 'C++' и оболочки Unix. Например:

Code
<?php
      echo "Это тест"; // Это однострочный комментарий в стиле c++
      /* Это многострочный комментарий
         еще одна строка комментария */
      echo "Это еще один тест";
      echo "Последний тест"; # Это комментарий в стиле оболочки Unix
?>


http://seaman.ge
 
მეზღვაურთა გაერთიანებული ფორუმი » ☜♡☞ მეზღვაურთა ფორუმი ☜♡☞ » ☜♡☞ კომპიუტერი, ინტერნეტი და პროგრამირება ☜♡☞ » Изучение PHP
  • გვერდი 1 დან
  • 1
  • 2
  • »
ძებნა:

ჰოსტერი uCoz