Автор: Брэтт Альтон (Brett Alton)

Языки программирования предназначены для того, чтобы автоматизировать выполнение задач и сделать жизнь проще. PHP не является исключением.

Однако PHP, каким бы он ни был хорошим, простым и широко используемым (на приблизительно 20 миллионах компьютерах и таких сайтах, как Facebook, Wikipedia (MediaWiki), Digg, Wordpress, Yahoo! и многих других), это не единственный язык, который применяется в интернете. Не является он также и лучшим.

Для веб-разработки существует множество языков программирования, включая Python, Perl, Ruby (и Ruby on Rails), Java (JSP), ASP, ASP.net и др. Вы можете даже погрузиться в таинства доступного лишь избранным программирования на C, C++ или другом низкоуровневом языке.

Но следует понимать, что каждый язык отличается от остальных, и все они используются для разных целей и задач. Некоторые являются процедурными, другие – объектно-ориентированными, третьи – смешанными. Если вы решите изучить Python, не медлите! Я очень советую это сделать. Кроме того, ваше резюме станет выглядеть ещё лучше, не так ли? Одни работодатели примут вас только с опытом написания программ на ASP.net., другим же будет достаточно знания PHP и Python. Выясните, на чём вам удобнее писать, а также что требуется другим людям (если вам интересны деньги!).

Ваш первый веб-сайт

Считая, что вы уже сделали свой первый сайт после прочтения второй статьи из серии о веб-разработке в 21-м выпуске Full Circle, мы продолжим работать над файлом «index.html», который мы сохранили в локальной веб-папке.

Делаем сайт динамическим

Редактирование большого числа страниц может вскоре стать очень неудобным, если, к примеру, вы хотите добавить на сайт страницу «birds.html» или обновить все страницы, потому что настал 2010 год. PHP позволяет сделать страницу динамической, разделив её на подключаемые секции.

Для начала выделим CSS в отдельный файл. Это не обязательное, но рекомендуемое правило, и следовать ему стоит практически для любой части сайта (CSS, javascript, PHP и всё, что повторяется на сайте несколько раз).

*{
color: #ececec;
font-family: 'DejaVu Sans', sans-serif;
}
body{
background-color: #212122;
}
#footer{
border-top: 1px solid #ccc;
}
#footer p{
font-size: 80%;
text-align: center;
}

Создайте новую папку «css» и сохраните в неё этот код под именем «screen.css».

В файле index.html удалите строки:

<style type="text/css"></style>

и замените их на:

<link rel="stylesheet" type="text/css" href="css/screen.css" />

Вы только что успешно отделили CSS от HTML.

Теперь, чтобы сделать оставшуюся часть сайта более модульной, перенесите весь код, начиная со строки «<!DOCTYPE>», заканчивая «<body>», в файл «header.php», который поместите в новую папку «inc».

Так же поступите с фрагментом от «<p>Menu:</p>» до «</ul>», поместив его в файл «menu.php» в ту же папку.

Наконец, создайте файл «footer.php» в папке «inc». Его содержимое должно начинаться с «<div id=«footer»>» и заканчиваться строкой «</html>».

Скопируйте оставшееся содержимое до тега «</div>», который располагается перед «<div id=«footer»>», и поместите в файл «index.php», который должен быть непосредственно в локальной веб-папке, рядом с файлом «index.html». Файл «index.html» нам больше не нужен, его можно удалить.

Сейчас ваша локальная веб-папка должна содержать следующие файлы и папки:

localhost/
      css/
                screen.css
      inc/
                footer.php
                header.php
                menu.php
      index.php

Теперь добавьте в самое начала файла «index.php» следующие строки:

<?php
include ('inc/header.php');
?>

там, где было меню, вставьте:

<?php
include ('inc/menu.php');
?>

и этот код в самый конец файла:

 <?php
include ('inc/footer.php');
?>

Проницательный читатель заметил: всё, что мы сделали, это просто перенесли заголовок, меню и нижнюю часть страницы в отдельные файлы, так же мы поступили с CSS. А потом включили эти файлы в «index.php».

Также вы познакомились с первым кодом на PHP и первой функцией (функция include()). При написании кода на PHP очень важно, чтобы:

  1. имена файлов заканчивались на .php и
  2. код на PHP находился внутри PHP-тегов «<?php ?>».

Для этих правил существуют исключения (как и для всего остального, чего я успел коснуться), но этим двум советам стоит следовать для повышения безопасности, удобства и согласованности.

<?php
       include ('inc/header.php');
?>
<div id="content">
<?php
       switch($_GET['page'])
       {
             default:
             case 'home':
                   echo '<h1>Мой первый сайт!</h1><p>Привет! Добро пожаловать на мой первый сайт!
                          Не ругайте меня, я только что начал изучать веб-разработку,
                          но скоро я сделаю ещё много чего!</p>';
                   break;
             case 'dogs':
                   echo '<p>Я люблю собак!</p>';
                   break;
             case 'cats':
                   echo '<p>Я люблю кошек!</p>';
                   break;
             case 'lizards':
                   echo '<p>Я люблю ящериц!</p>';
                   break;
       }
?>
<?php
        include ('inc/menu.php');
?>
</div>
<?php
        include ('inc/footer.php');
?>

Если вы перейдёте на http://localhost/index.php, то не заметите никакой разницы между предыдущим файлом «index.html» и «index.php», который мы создали только что.

Конструкция switch языка PHP

В заключении этого введения в PHP я расскажу о конструкции switch.

Сначала поместите код с предыдущей страницы в файл «index.php» и удалите всё остальное.

Конструкция switch использует переменную «page» из строки запроса (всё, что расположено в URL после вопросительного знака (?), считается строкой запроса).

Правильно сформированная строка запроса выглядит так: http://example.com?variable=5. Мы вскоре её используем.

Также обратите внимание на условия, которые принимает конструкция switch: «home», «dogs», «cats» и «lizards». То, что написано в условии «default»,будет выполнено, если не подойдёт ни одно другое условие (например, http://localhost/index.php?page=birds). Это не самый лучший способ для обработки неверной строки запроса, но для начала он подойдёт.

Теперь измените код в файле inc/menu.php, чтобы он выглядел так:

<p>Menu:</p>
<ul>
<li><a href="index.php?page=home">Home</a></li>
<li><a href="index.php?page=dogs">Dogs</a></li>
<li><a href="index.php?page=cats">Cats</a></li>
<li><a href="index.php?page=lizards">Lizards</a></li>
</ul>

Теперь мы можем передавать файлу «index.php» переменную «page» , содержащую «home», «dogs», «cats» или «lizards», в зависимости от нажатой ссылки. Теперь можно свободно переходить между страницами, а их содержимое будет меняться. Поэкспериментируйте самостоятельно. Добавьте пятую страницу с названием «birds» и убедитесь, что она работает. Пожалуйста, учтите, что это очень краткое введение в PHP. При разработке веб-сайтов, которые используют include, необходимо учитывать некоторые вопросы безопасности, такие как прямой доступ ко включаемым файлам (файлы в нашей папке «inc»). Но этой темы я коснусь следующий раз.

Brett Alton – энтузиаст Ubuntu, технический специалист и разработчик ПО из Торонто, Канада