PHP
Этот язык программирования специально разработан для написания web-приложений (сценариев), исполняющихся на Web-сервере.
Аббревиатура PHP означает "Hypertext Preprocessor (Препроцессор Гипертекста)".
Синтаксис языка берет начало из C, Java и Perl.
Преимуществом PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц.
В отличие от javascript, код которого выполняется на Вашем компьютере, PHP-код выполняется на сервере.
Исходя из этого понятно, что проверять свой сайт с javascript-ами можно и без наличия Интернета, а для
PHP нужен сервер.
Однако если установить на свой компьютер
специальную программу - виртуальный PHP-сервер (можно найти в Интернете), то тоже сможете тестировать страничку с PHP содержимым.
Так, я установил NuSphere PhpED.
Большинство сайтов запускаются начальным файлом не index.htm а index.php.
В чем их разница? Практически никакой.
Вы свой файл тоже можете также переименовать и при
размещении его на внешний сервер он также будет работать.
А основная разница в том, что файл с таким расширением будет обрабатываться PHP-сервером, который
будет искать в нем вставки программного кода на PHP.
Такая вставка делается прямо в html-страничке, например, так:
<?php ...содержимое...?>
Это содержимое будет обработано PHP-процессором.
Давайте рассмотрим несколько небольших, но нужных реализаций на PHP.
Динамическая страница
Посмотрите на страничку, которую Вы сейчас читаете. Здесь центральная часть текста, включая читаемый
в данный момент, не лежит в теле основной html-страницы.
Этот текст находится в отдельном файле php.txt, а первый урок в файле nach.txt и т.д.
Другими словами я генерирую web-страницу по ходу.
Для этого, в теле основной html-страницы, есть вставка на PHP, которая подгружает текст из внешних файлов.
Итак, если Вы установили у себя виртуальный PHP-процессор (например, NuSphere PhpED), то переименовываем нашу заготовку
в index.php. Далее, для редактирования файла будем пользоваться самим PhpED.
Запускаем программу и открываем наш файл index.php. В правом нижнем углу появится иконка

. Кроме того, в этом редакторе, для
подсветки функций, ремарок, переменных - используется разный цвет, что очень удобно.
По окончании слова "Вторая строка" вставляем фрагмент такого кода:
тут еще html код
Вторая строка <br>
<?php
/* ---это код на PHP--- */
$tema=$_GET['t'];
/* проверка переменной */
if ($tema=="") { $tema="nach"; }
echo "<div style='color: #000000; background: #ffffff;'>";
include("$tema".".txt");
echo "</div>";
?>
тут окончание html кода
</body>
</html>
Для того чтобы проверить, как подгрузится внешний текст создайте файл с именем
nach.txt
и внесите в него любой текст.
Для проверки нашей новой заготовки нажимаем в верхнем левом углу редактора зеленую стрелку
(подсвечивается слово Run) или аналогичный пункт в меню редактора.
PHP-процессор обработает файл и выдаст результат на экран.
Если все правильно сделали, то после слов "Вторая строка " появится текст из файла nach.txt.
Рассмотрим подробнее нашу вставку на PHP
Итак, первая строка
$tema=$_GET['t']; означает: переменной $tema присвоить значение, принятое
из url-строки (конкретно переменной
t).
Вам кажется, что совсем запутались, не волнуйтесь - все просто.
Отвлекитесь и посмотрите на мой сайт.
Вверху этого сайта есть меню, по которому Вы переходите от одного урока к другому.
Наведите (не нажимая) мышку на пункт меню урока "Начало".
Обратите внимание, браузер где-то в левом нижнем углу монитора Вам показывает отсылку, куда будет переход если нажать кнопку мыши.
Посмотрите на концовку этой отсылки
...?t=nach.
Именно так, через знак вопроса передаются параметры в страницу. В данном случае, при нажатии
мышкой на этот пункт меню, запустится основная страница, в которую передастся параметр t=nach.
Можно передать и несколько параметров. Тогда их перечисляют через знак &. Например так, используя
тег <a>
<a href="test.php?x=1&y=2&str=hello">Отсылка </a>
Возвращаемся к нашей первой строке PHP-кода:
$tema=$_GET['t']; и уже понимаем, откуда берется значение t.
Итак, $tema уже будет=nach.
Изучаем следующую строку
if ($tema=="") - это задано условие "Если переменная tema равна пустому".
У нас в фигурных скобках
$tema="nach"; т.е. присвоить переменной $tema значение nach.
Конечно, можно было сразу присвоить то имя, которое у файла - nach.txt (но я специально усложнил задачу,
чтобы показать далее как формировать строки в PHP).
Итак, в этой строке происходит следующее. Если входной параметр t был задан, то $tema - будет ему равна, т.е. не равна пустому -
то ничего выполняться не будет и $tema останется равной значению t.
А если параметр не задан, то сработает условие и
$tema станет равна "nach".
Такая проверка нужна при первом запуске страницы, пока пользователь еще не выбирал пункт меню, где
переменной t что-нибудь присваивалось. И тогда нам нужно показать начальную страницу.
Далее интересная строка:
echo "<div style='color: #000000; background: #ffffff;'>";
Ключевое слово echo "... содержимое..."; - выводит содержимое на экран.
Т.е. все то, что находится между кавычками.
Поскольку там не просто текст,
а тег div, то это и обрабатывается соответственно. Т.е. открывается блок со стилем: белый фон и черные буквы.
Следующая строка:
include("$tema".".txt");
Ключевое слово include (вставка) - вставляет (в фактически открытый ранее блок div) содержимое файла.
Если это первичная загрузка страницы, то имя файла будет
nach.txt.
Если выбран пункт меню урока, который сейчас читаете, то -
java.txt.
Далее через echo "</div>"; - блок закрывается и продолжается отображение html-страницы.
Ясно, что при выборе другого пункта меню в полупустую заготовку подгрузится содержимое другого файла.
Именно это и означает динамическое изменение страницы.
Счетчик посещений
Существует множество способов как создать счетчик, который бы считал количество посещений нашей странички.
Я покажу простенький с графическим отображением (см. на правой панели).
1. Создаем изображение counter.png, на которое будет писаться число посещений и сохраняем в формате png
(я создал картинку размером 80х30).
2. Создаем пустой файл counter.dat (в нем будут фиксироваться показания посещений).
3. Вставляем следующий код
<?php
// Открываем файл счетчика и считываем значение в переменную $count
$f=fopen("counter.dat","r");
$count=fgets($f,20);
fclose($f);
$count=ereg_replace(" ","",$count); // Удаляем символ конца строки
$count++; // Увеличиваем счетчик и обновляем файл
$f=fopen("counter.dat","w");
fputs($f,"$count ");
fclose($f);
// Создаем новое изображение из файла
$im = imagecreatefrompng("counter.png");
// Назначаем цвет
$color = ImagecolorAllocate($im,170,0,0);
// Выводим счет на изображение
Imagestring($im,2,5,14,$count,$color);
//Сохраняем в файл
ImagePng($im,"schet.png");
imagedestroy($im);
?>
Далее, в удобном для вас месте, вставляем полученное изображение (картинка schet.png) в виде <img src="schet.png">
В данном скрипте используются функции работы с файлом: открытие, чтение, запись и закрытие файла,
а также работа с изображениями.
Я не буду разъяснять строки скрипта, т.к. в его тексте достаточно комментариев.
Кстати,
аналогичным способом делается каптча. Это небольшая картинка с искаженными цифрами.
Такую используют на различных форумах для защиты от вредоносных роботов.
Выше мы рассмотрели пример, динамической страницы, когда данные вносились из файла.
Однако данные (наши тексты) могут находиться не только в файлах, но и в базе данных.
Например, на моем сайте
Это интересно для подгрузки текстов я
использовал базу данных MySql.
Итак, если хотите использовать базу данных MySql, то читаем дальше.
PHP и MySql
Когда вы получите место на бесплатном хосте или купите его, то
Вам создадут базу, дадут имя и все пароли для доступа к ней. Таблицы будете создавать сами.
Для работы с базой данных обычно используют phpMyAdmin на специальном сайте (адрес дадут, у каждого хостинга свой).
Например, на hut.ru он такой:
http://register.hut2.ru/phpadm/index.php
При входе на такой сайт затребуют имя и пароль, введя которые откроется конструктор-редактор
для администрирования вашей базы (см. фото)
Здесь база данных называется nana8 и в ней пять таблиц.
В верхней части есть закладка SQL, войдя в которую можно выполнить SQL-запрос, также можно сделать
экспорт и импорт данных, добавлять и редактировать поля таблиц и т.д.
В нижней части есть окно для ввода новой таблицы.
Так, прямо из браузера, можно создавать таблицы, менять в них данные и прочее.
В дальнейшем, эти данные будем получать используя php-вставки на нашем сайте.
Например, мы из конструктора создали таблицу под именем anekdot и в ней задали два поля sn и text.
Пусть в поле sn будет порядковый номер, а в поле text - сам текст анекдота.
Ниже приводится пример как найти случайный по счету анекдот из этой базы и вывести его на экран.
<?php
$my_server = 'xxxbase';
$my_baza = 'nana8';
$my_user = 'sdaaff';
$my_pwd = 'UhUKSda';
$my_table = 'anekdot';
$n=rand (1, 15);
$link = mysql_connect($my_server, $my_user, $my_pwd);
mysql_select_db( $my_baza,$link);
$n=rand (1, 15);
$result=mysql_query("select text from $my_table where sn=".$n." ");
echo "Новый анекдот <br>".$result[0];
?>
Сначала переменным присваивается значение, которое Вам дадут. Это имя сервера, имя базы данных,
Ваш логин и пароль, имя таблицы, где нужно прочитать значение.
В строке
$n=rand (1, 15); - переменной $n присваивается значение случайного числа в интервале от 1 до 15
В строке
$link = mysql_connect... - осуществляется подключение к серверу MySql, где в
скобках подставятся значения указанных переменных.
В следующей строке
mysql_select_db(... - подключаемся к нашей базе
Далее
$result=mysql_query(... - переменная $result получает значение из базы.
Условие поиска задано далее
("select text from $my_table where sn=".$n." ");
Слово select означает найти и далее, какие поля таблицы вывести.
Далее указывается, в какой таблице все это искать (подставится значение переменной $my_table)
и при этом, должно соблюдаться условие (where),
где sn=... Тут подставится значение переменной $n.
Следующая строка
echo "Новый анекдот <br>".$result[0];
выведет на экран слова "Новый анекдот" и с новой строки (т.к. есть вставка <br>) - содержание анекдота.
Вот и все, и как видите - не так страшен черт как его малюют.
Как это ни странно, но я нашел
применение PHP там, где совсем не ожидал
Однажды, когда я делал сайт для магазина, мне нужно было выполнить одну, как мне тогда казалось, сложнейшую задачу.
Имея тысячи фотографий товара нужно было сделать их маленькие копии да еще с полупрозрачной эмблемой посередине.
Конечно, это можно сделать в Фотошопе, играясь с каждой картинкой, потратив на это недели, но я сделал
по-другому
Я написал скрипт на PHP, который брал из папки с фотографиями поочередно файлы изображений, вычислял их размеры,
создавал маленькое пропорциональное изображение (с шириной в 200 пикселей) и поверх него вставлял логотип.
За несколько минут скрипт обработал тысячи файлов!!!
Вот вам и PHP.
Пример этого скрипта:
Подведем итоги
Итак, мы уже имеем понятие, что такое PHP и где его можно применить.
Мы немного напуганы, что наш сайт могут взломать, используя PHP-инъекцию, если мы где-то напортачим.
Но волков бояться - в лес не ходить.
Этот урок закончен, можете переходить на закладку Итоги,
где я научу Вас как разместить наш сайт в Интернете.