Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 15
На сайте нет зарегистрированных пользователей

Пользователей: 13,372
новичок: vausoz
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

База данных электронного документооборота на Delphi + бд Intebase
Моделирование регулировочного участка цеха на GPSS + Пояснительная записка
Файл записей с выводом обратного заголовка на Turbo Pascal

Основы PHP
Путешествуя просторами Глобальной сети, вы, наверное, не раз встречали
всевозможные форумы и опросники. Видели разнообразные графики и счетчики
систем сбора и обработки статистической информации, которые изменяли
свой вид всякий раз, когда вы посещали такой сайт снова и снова.
Возможно, вы заполняли различные формы, в которых уже до вас были
введены ваше имя, электронный адрес и прочая "конфиденциальная"
информация. Если это так, то наверняка вам приходилось сталкиваться с
файлами, которые имели расширение *.php3, вместо привычных *.htm или
*.html. Что за этим всем скрывается, мы и попробуем рассказать в этой
статье…


РНР (читается как
пи-эйч-пи) появился на свет осенью 1994 года по воле Расмуса Лердорфа
(Rasmus Lerdorf). Немного ранее имели место первые версии этого
скрипт-языка, которые сам автор использовал исключительно в своих личных
целях. РНР начал свою жизнь как невзрачная CGI-оболочка,
написанная на Perl.

Небольшое отступление: СGI (Common Gateway Interface) - общий
шлюзовой интерфейс - является стандартом, который предназначен для
создания серверных приложений HTTP. Такое приложение, которое
называют шлюзом или CGI-программой, запускается www-сервером
в реальном времени. Сервер передает запросы пользователя CGI-программе,
которая их обрабатывает и возвращает результат своей работы на экран
пользователя. Таким образом, Интернет-серфер получает динамическую
информацию, которая может изменяться в результате влияния различных
факторов. Сам шлюз может быть написан на C/C++, Fortran, Perl, TCL, Unix
Schell, Visual Basic, Apple Script и других подобных языках. Но в случае
с РНР, для написания его в первоначальном варианте был выбран язык
Perl
.

Вот как об этом вспоминает сам автор: "Я написал это в течение полудня в
промежутке между деловыми встречами. Тогда я нуждался в быстром
инструменте, чтобы иметь представление о тех людях, которые читали мое
резюме, размещенное в Сети. Даже не предполагалось, что оболочка будет
использоваться кем-то кроме меня. Сервер, на котором располагалось мое
резюме, был постоянно перегружен. Я переписал Perl-оболочку на C, чтобы
избавиться от значительных непроизводительных затрат… Люди, которые
использовали тот же сервер, натолкнулись на мою оболочку и попросили ее
для использования у себя".

Так, в начале 1995 года появилась первая версия продукта, которая стала
доступной широкому кругу пользователей и содержала дистрибутив с
документацией, список рассылки и FAQ. Имя этого первого пакета было
Personal Home Page Tools
. На тот момент РНР обладал достаточно
скромными возможностями. Он имел простейший анализатор кода, который
понимал несколько специальных команд, а также разные утилиты для
использования на домашней странице, такие как гостевая книга, счетчик и
тому подобное.

Ближе к средине 1995 пакет основательно перерабатывается, был добавлен
Form Interpreter (FI), для упрощения обработки данных, вводимых с
помощью форм. Также появилась поддержка mSQL, позволившая
работать с базами данных. В таком виде появилась вторая версия продукта,
которая носила название PHP/FI Version 2. После этого РНР начал
стремительно развиваться. Люди начали писать собственные библиотеки,
расширяющие функциональность языка.

По скромным подсчетам NetCraft (
http://www.netcraft.com/),
в конце 1999 года PHP использовался уже на более чем 1000000 сайтов во
всем мире. В июне 2000 года эта цифра перевалила за 2,5 миллиона.



Так что же это такое? Итак, на сегодняшний день РНР, несмотря на свое
скромное название (Personal Home Page - персональная домашняя
страница), - это мощный кроссплатформенный набор средств, который
располагается на сервере и предназначается для обработки кода,
встраиваемого в html-документы. Благодаря этому, появляется
возможность создавать динамические Web-страницы. То есть вы
создаете их как обычно, используя язык HTML и вставляя в документ, по
мере необходимости, РНР-команды. Файлы, созданные таким образом,
хранятся на сервере. Когда посетитель обращается к вашей страничке, РНР
обрабатывает встроенные в нее команды и выдает результат браузеру
пользователя - точно так же, как это делает CGI-программа,
написанная на С или Perl. Только в отличие от последней, РНР имеет ряд
преимуществ:

- создание и отладка скриптов PHP значительно проще, чем отладка и
создание скриптов на других языках.

- так как РНР-команды просто вставляются в текст html-документа,
отпадает необходимость в различных IDE (интегрированная среда
разработки);

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

Вместе с тем, РНР обладает огромным набором функций и большой гибкостью,
которые могут быть значительно расширены с помощью дополнительных
внешних библиотек. Вы можете управлять доступом к вашим страницам,
создавать и обрабатывать базы данных любой сложности, генерировать
изображения или PDF-документы и тому подобное. Но обо всем по
порядку.

Заглянем внутрь. По своему синтаксису РНР является С-подобным
языком. Поэтому программисту, пишущему на С, будет очень легко освоить
этот скрипт-язык и использовать его максимально эффективно в своих
целях. Но даже если С вам не знаком, то… настало время с ним
познакомиться, тем более, что РНР прекрасно для этого подходит. Все
достаточно просто, и я постараюсь вам это показать.



Для начала, чтобы сервер знал, в каком из файлов используются РНР-команды
и, следовательно, мог передать такую страничку для дальнейшей обработки,
необходимо изменить расширение файла с *.html на *.php3.
Поэтому, когда вы видите файлы с таким расширением, можно с почти полной
уверенностью утверждать, что при их создании использовался РНР.

Каждая команда РНР обычно начинается с тэга <?php и заканчивается
?>. Если вы используете несколько команд подряд, они могут быть
объединены внутри одной пары тэгов - в этом случае каждую команду
необходимо отделять друг от друга символом ;. В любом месте РНР-скрипта
можно размещать комментарии. Для начала комментария используется символы
/*, а для его завершения - */. Если комментарий
небольшой, удобней использовать символы // - тогда все,
что следует за ними до конца строки, будет игнорироваться, подобно
лишним символам пробела, табуляции и новой строки.

РНР позволяет использовать переменные - при этом их не нужно описывать
так, как это делается в Visual Basic или Pascal. Вы просто вводите
необходимую переменную там, где вам нужно и тогда, когда вам это нужно.
Имена переменных начинаются с символа $.


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



<?php



$a = 7;



$b = 9.5;



$c = 



        "Hello";



?>


Здесь переменной а
присваивается значение 7, и она приобретает тип целочисленной.
Переменная b обретает вещественный тип и становится равной 9,5.
Строка Hello присваивается переменной с, в результате чего
она становится строковой.

Для отображения переменных или результатов работы скрипта используется
команда echo. Вот небольшой пример рабочей страницы, для того,
что бы можно было оценить, как просто включить PHP-скрипт в
обычный html-документ:



<html>



<head>



<title>Пример</title>



</head> 



        



<body>



<?php 



$d = date(d.m.Y);



echo "Последние 



        обновления: $d "; ?>



</body>



</html> 


В результате загрузки такой
страницы, РНР обработает все команды, которые находятся между
специальными тэгами, и вы увидите, в данном случае, строку вроде
Последние обновления: 2.08.2000
. Браузер получает чистый HTML-код
и если просмотреть его, вы не найдете там никаких следов пребывания РНР.
Таким образом, вы создадите "вечно обновленную" страницу J.

Встроенная функция date() способна выводить текущие время и/или
дату - в любом необходимом для вас виде.

С помощью PHP очень просто обрабатывать данные, полученные из форм, так
как для каждого поля ввода в вашей форме автоматически создается
переменная. Предположим, например, что у вас есть форма:



<form 



        action="thanx.php3" method=post>



<input type="text" 



        name="name">



< input type="text" name="email"> 



< 



        input type="submit">



</form>


Тогда в файле thanx.php3
можно написать что-нибудь вроде:



<?php 



        



echo "Спасибо вам, $name, за регистрацию. Мы только что отправили на 



        $email 10Mb рекламных проспектов. Заходите к нам 



        еще.";



?>


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

Письмо можно действительно послать, и это делается одной строкой. Если
вы добавите в тот же thanx.php3 нижеследующее:



<?php 



mail($email, "Тема сообщения", 



        "Простите, проспекты уже закончились");



?>


Письмо уйдет на адрес, который
пользователь еще минуту назад неосмотрительно вводил в вашу форму.

РНР поддерживает HTTP-cookies. Cookies - это механизм для
сохранения данных в удаленном браузере. Таким образом можно отслеживать
или идентифицировать пользователя. Для того, чтобы сохранить переменную
на компьютере посетителя вашей странички, используется функция
SetCookie()
. Любое значение cookies, сохраненное таким образом,
автоматически превращается в переменную, так же как и в случае с
формами. Например:



<?php 



        



SetCookie("TrojanHorse","Я вас где-то видел ");



echo 



        $TrojanHorse; 



?>


На экране появится строка: Я
вас где-то видел
. Все достаточно просто, сохранять можно любые
переменные, а затем их использовать. Именно поэтому в формах, которые вы
хотя бы раз заполняли, при их последующих загрузках вы можете увидеть
ваши имя, электронный адрес и прочую подобную информацию в
соответствующих полях.

В РНР присутствует достаточно большой набор функций для работы с
файлами. Причем можно работать как с локальными файлами, так и с теми,
что расположены на удаленных серверах. Процедура записи/чтения
осуществляется очень просто.



<?PHP



$fp = 



        fopen("counter.txt","r+");



$c = fgets($fp, 10);



$c = c + 



        1;



rewind($fp);



fputs($fp,$c);



fclose($fp);



echo 



        $c;



?>


Этот пример демонстрирует
принцип создания на РНР, простейшего счетчика посещений вашей страницы.
Функция fopen() открывает файл counter.txt для чтения и
записи. В переменную с с помощью функции fgets()
считывается строка длиной 10 байт. Затем значение счетчика увеличиваем
на единицу. Здесь хорошо видно, как переменная с, которая вначале
имела строковый тип, становится целочисленной: $c = c + 1.
Функция rewind($fp) перемещает файловый указатель на начало файла.
Новое значение счетчика записывается в файл fputs($fp,$c), после
чего он закрывается fclose($fp). В том месте страницы, где будет
расположен этот скрипт, всегда можно будет видеть, сколько раз эта
страница посещалась.

Интересные возможности открываются при использовании HTTP-заголовков.
Частным случаем их использования может служить такой пример. Допустим,
вы имеете каталог ссылок и хотите знать, какие из них пользуются
наибольшей популярностью. В этом случае можно использовать функцию
header()
. Например:


<?PHP
header("Location:


http://www.php.net/
");
?>


В данном случае
пользователь будет перенаправлен на сайт РНР. При этом можно увеличить
значение счетчика, которое-то вам и расскажет, что именно интересует
ваших посетителей. Заголовки (как, впрочем, и cookies) необходимо
использовать до вывода данных командой echo или ей подобными
функциями - иначе ничего не получится.

Чтобы больше узнать о ваших посетителях (а именно для этого, как вы
теперь знаете, в начале и создавался этот язык), можно использовать
предопределенные переменные, доступ к которым предоставляет РНР.
Например, с помощью переменной REMOTE_ADDR вы узнаете IP-адрес,
с которого пользователь просматривает вашу страничку. Переменная
HTTP_USER_AGENT
расскажет вам о том, какие браузеры и операционные
системы используют ваши посетители. Существует еще множество других
переменных, которые можно использовать для изучения аудитории
посетителей вашего сайта или страницы.

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

Опубликовал Kest October 26 2008 12:45:09 · 0 Комментариев · 7135 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
PHP: обучение на ...
Секреты программи...
Разработка Web-пр...
Calendar
Matrix2D
Binary2XMLDemo (Р...
Длинный заголовок...
Фундаментальные а...
SendSMS для PHP-F...
Удаление своего EXE
Фундаментальные а...
C++ : библиотека ...
Разработка интерн...
Пример создания W...
CoolHints2k v1.03
Факториал [Исходн...
Abc_component
JanComp
ZipTV
FatScrollbar

Топ загрузок
Приложение Клие... 100793
Delphi 7 Enterp... 98016
Converter AMR<-... 20298
GPSS World Stud... 17059
Borland C++Buil... 14238
Borland Delphi ... 10373
Turbo Pascal fo... 7390
Калькулятор [Ис... 6080
Visual Studio 2... 5228
Microsoft SQL S... 3674
Случайные статьи
Процедура SetLineS...
Основные принципы ...
Метод setDataSource
Покердом сайт
Продолжение описан...
Основы
Кроссбраузерная по...
Конфликт при удалении
Индексированные об...
Аппаратная реализа...
Мечты сбываются в ...
Запрограммировать ...
Текстовое наполнен...
Элементы коллекции...
Символы, используе...
Встраивайте SQL-за...
Создание Meta-тегов
Какие операции нео...
Будущее хавбека Ми...
Многоразрядный дво...
Головной интерфейс...
Важность памяти
Сборка исходных те...
Нумералы
Коллективное владение
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?