На PHP, как на "Новые ворота"...

Автор статьи: Black
Сайт Автора: Progers.ru
E-mail Автора: cooleditor@nm.ru
Дата публикации: 05.10.2005



 Вместо эпиграфа:
PHP - Самый лёгкий, но от этого не менее функциональный серверный язык! При всей своей лёгкости, новички очень часто даже не представляют с чего начинать! Чтобы понять принцип работы на PHP они идут в Интернет и читают там миллионы статей на тему "PHP для новичка" или что то в этом роде, но при этом абсолютно не осознавая смысл прочитанного! Я сам долго не мог понять принцип работы PHP, пока не обратился к знающим людям! Статей, действительно подробных я не нашёл и я решил написать по своему, как учился сам! И так, начинаем! Хочу предупредить, что при написании статьи, в некоторых местах я руководствовался материалами других авторов... Там стоят соответствующие копырайты!

А что такое PHP?
Хороший вопрос! Если не знать на него ответа, можно очень долго мучаться при тестировании своего скрипта:) PHP (Personal Home Page :: Персональная Домашняя Страничка) - это язык серверных скриптов, которые выполняются не на машине клиента, а, как видно из определения, на сервере. Пользователь видит лишь конечный результат его работы! В исходниках странички тоже никаких признаков PHP не видно! Это позволяет добиться скрытости вашего кода и усложнить взлом сайта (Хотя кому надо, всё равно посмотрят:), а рядовые пользователи думают, что так и должно быть! В общем все довольны и всем всё нравиться:) Думаю, я ответил на поставленный вопрос!

История:
{По материалам статьи Максима В.Приходько - "РНР - что в этом слове?"}
И так. Кому же мы обязаны за появление этого языка? А обязаны мы Расмусу Лердорфу (Rasmus Lerdorf). Именно под его руководством, осенью 1994 года на свет вышла первая версия этого языка! На самом деле, первые версии этого языка появились немного раньше, но не были выдвинуты в массы. Расмус Лердорф использовал его исключительно в своих личных целях. Сам язык PHP начал свою жизнь, как наипростейшая оболочка CGI (Common Gateway Interface :: Общий Шлюзовой Интерфейс), написанная на Perl. Вот как об этом вспоминает сам автор: "Я написал это в течение полудня в промежутке между деловыми встречами. Тогда я нуждался в быстром инструменте, чтобы иметь представление о тех людях, которые читали мое резюме, размещенное в Сети. Даже не предполагалось, что оболочка будет использоваться кем-то кроме меня. Сервер, на котором располагалось мое резюме, был постоянно перегружен. Я переписал Perl-оболочку на C, чтобы избавиться от значительных непроизводительных затрат… Люди, которые использовали тот же сервер, натолкнулись на мою оболочку и попросили ее для использования у себя".
Благодаря этому событию, к середине 1995 года на свет вышла первая, общедоступная версия, обладавшая достаточно скромными возможностями. Она имела наипростейший анализатор кода, понимала несколько команд, а также имела в своём составе несколько инструментов, для использования их на сайтах. Это такие инструменты, как Гостевая книга, Счётчик и т.д.
Ближе к средине 1995 пакет основательно перерабатывается, был добавлен Form Interpreter (FI), для упрощения обработки данных, вводимых с помощью форм. Также появилась поддержка mSQL, позволившая работать с базами данных. В таком виде появилась вторая версия продукта, которая носила название PHP/FI Version 2. После этого РНР начал стремительно развиваться. Пользователи писали собственные модули, расширяющие возможности языка!
На сегодняшний день связка
PHP+MySQL является кросс-платформой, на которой сделано большинство современных сайтов! А само число сайтов, на которой используется PHP давно перевалило за 2,5 миллиона!

Сервер на дому!
Как вы, наверное, уже поняли
PHP не заработает на вашем компьютере без сервера! Как же тогда писать и отлаживать коды на PHP? Есть два варианта. Первый заключается в том, чтобы каждый раз закачивать на сервер ваш скрипт и там тестировать его. Это, согласитесь, не удобно! Поэтому я предпочитаю второй вариант! Он заключается в том, чтобы у себя на компьютере установить локальный сервер и уже, как говориться, не отходя от кассы тестировать ваш код! Это гораздо удобнее! Для этого вам нужно скачать и установить на ваш компьютер локальный сервер Apache (www.apache.ru). Также необходимо правильно и грамотно настроить его, чтобы избежать всяких нехороших проблем! Это дело трудное, так что именно по этому я предпочитаю использовать Денвер (www.denwer.ru). Там уже всё грамотно настроено да и кроме поддержки PHP, вы ещё получите Perl, MySQL, CGI, SSI, PHPMyAdmin и т.д.). Кроме того вес дистрибутива всего пара мегабайт, что значительно меньше, если бы вы качали всё это по отдельности! Я буду использовать именно его в дальнейшем. Я не буду на этом останавливаться, так как по этой проблеме есть куча статей.
С помощью вашего локального сервера вам необходимо создать локальный домен для тестирования ваших скриптов! В Денвере это делается очень просто! В каталоге (куда вы установили ваш сервер) вы должны найти папку
home. В ней Вы должны создать папку с именем вашего домена (у меня это будет phphost и вам, для избежания проблем в дальнейшем, советую сделать его таким), а в той папке, что вы создали, вы должны создать другую папку, которая должна называться не иначе как www. Туда вы будите сохранять ваши скрипты, да и вообще весь сайт для отладки! Дальше запускаете сервер соответствующей ссылкой, созданной Денвером при установке. Теперь ваш домен доступен через браузер, как http://phphost. Теперь всё должно работать!

Основы работы!
Для того, чтобы сервер правильно обработал ваш скрипт, он должен знать, в каком файле он находится! Для этого вы должны поменять расширение документа с
.html на .php (.php3 или .php или .phtml). Все команды в PHP должны заканчиваться ;. Создайте новый документ в блокноте (Хотя для редактирования PHP есть специальные редакторы) и сохраните его в папке ../home/phphost/www под именем index.php. Теперь при наборе в браузере http://phphost у вас загрузиться этот файл! Думаю, этого хватит! Идём дальше!

Основы синтаксиса!
Любая команда
PHP, даже в одну строчку, должна начинаться с и заканчиваться ?>. Давайте рассмотрим наипростейший пример!
В вашем файле
index.php напишите эти строчки:
$test = "Это моя первая программа на PHP";
print $test;
?>
Сохраните изменения и просмотрите в браузере! Как видите перед вами текст, содержащийся в переменной $test! От PHP ни осталось и следа! Кстати, о переменных! Если вы знакомы с Pascal, Basic или C/C++, то спешу вас успокоить! Переменные в PHP определяются не так, как в вышеперечисленных языках! Переменная в PHP Должна начинаться с $, и не иметь пробелов! Далее её содержимое будет доступно в любом месте кода (в пределах если это ни кукис, сессия или глобальная переменная). Так вот, в этом примере переменной $test Присваивается (с помощью знака = ) значение, записанное между ". Между кавычками записывается текстовое значение, если в тексте больше чем три кавычки, то все они, кроме первой и последней, должны быть оформлены как \" (Например: "Ваше сообщение было доставлено \"Адресату\""). Я немного отвлёкся от темы. Так вот, дальше по коду идёт вывод данных на экран с помощью команды print. Также ещё можно использовать команду echo.

Служебные команды!
Очень часто нужно проверить значение каких либо данных! Делается это очень просто! Для этого есть специальная служебная связка.
В вашем файле
index.php напишите эти строчки:
if($n == 5){
$t = $n*5;
print "Результат 5*5: ".$t;
}
?>
Здесь с помощью блока if(), где в скобках указывается условие, я проверяю значение переменной! Если она равна 5, то дальше будет выполняться код, введённый в фигурных скобках, если он будет больше или меньше 5, то ничего не произойдёт! Здесь двойное равно ( == ) является сравнением, а одинарное присваиванием! Не Перепутайте! Также можно добавить служебную команду else, которая будет выполнять действия в фигурных скобках после неё, если значение в if() больше или меньше 5. Вот пример:
if($n == 5){
$t = $n*5;
print "Результат 5*5: ".$t;
}else{
$r = "Ни фига ваше значение ни пять!!!!";
print $r;
}
?>
Чтобы проверить его работоспособность сохраните изменения в файле index.php и в браузере напишите:
http://phphost/index.php?n=5 и посмотрите на результат, а затем напишите http://phphost/index.php?n=1.
Видите сами, что когда переменная
n равна 5, то выходит одно, а когда больше либо меньше, то другое!

На этом служебные команды PHP не заканчиваются, но для начала хватит!

Циклы:
Очень часто нужно вывести несколько значений на экран, При этом не зная их точного числа! Такое часто происходит, когда нужно вывести значения базы данных. В таких ситуациях точное число значений узнаешь только во время работы скрипта! Вот тогда то на помощь и приходит циклы! 
В
PHP их несколько! Я расскажу про два вида циклов: Вот первый:
$i = 0;
$rec = 10;
while($i < $rec){
print $i."
";
$i++;
}
?>
Теперь просмотрите работу этого скрипта в браузере. Вы увидите, что он вывел число значений $rec, в данном случае 10. При чём, он их вывел по возрастанию! Вот ещё один пример цикла:
$rec = 10;
for($i=0; $i < $rec; $i++){
print $i."
";
}
?>
Результат один и тот же, но данный цикл намного функциональнее! Людям, знакомым с C он покажется знакомым и работает он точно также как и в других языках!

Комментарии!
Ни один уважающий себя язык не обходится без комментариев.
PHP не исключение! Комментарии очень часто помогают не только новичкам, но и профессиональным программистам ориентироваться в сотнях строках кода! Комментарии при обработке не учитываются! Пример:
# Это комментарий
print "А это нет!";
?>
Как видите комментарий не отобразился! Это очень удобно! Комментарии в PHP начинаются с #.

MySQL!
PHP в связке с MySQL является очень мощным инструментом для создания сайта! Сама база работает быстрее файлов, что позволяет уменьшить время загрузки странички! Это несомненно понравиться пользователям, которые сидят на модеме! В PHP есть несколько функций для работы с базами!
mysql_connect(хост, база, пароль) - присоединение к базе
mysql_select_db(имя базы) - выбор базы
mysql_query(запрос) - выполнить запрос
mysql_num_rows(результат запроса) - число колонок
mysql_close() - отключение от базы
Вот только основные функции для работы базой
MySQL!
Пример:
mysql_connect($host,$base,$pass)or die(mysql_error());
mysql_select_db($db_name)or die(mysql_error());
$q = "SELECT * FROM test";
$a = @mysql_query($q);
if(@mysql_num_rows($a)!=0){
$num = @mysql_num_rows($a)or die(mysql_error());
$tr = $num;
}
print $tr;
@mysql_close()or die(mysql_error());
?>

The END!
Уфф... Не думал что это будет так трудно! Хотелось рассказать сразу много, но всё ближе и ближе к концу я отходил от этой мысли! Но всё равно, основы PHP и MySQL я вам рассказал! Дальше всё зависит от вашего желание. Если вам это интересно, то вы выучите PHP очень быстро, ну а если нет, то хотя бы будите знать основы! Если что, то пишите на [email protected]