Основы работы с PHP

Поэтапное создание собственного сайта с нуля


PHP (англ. PHP: Hypertext Preprocessor — PHP) — скриптовый язык общего назначения,широко применяющийся для разработки веб-приложений.Поддерживается всеми распространенными хостинг-провайдерами.

Область применения.

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

Основная область применения PHP - это написание скриптов, работающих на стороне сервера поэтому PHP способен выполнять всё то, что выполняет другие программы CGI.

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

PHP доступен для большинства операционных систем. Также в PHP включена поддержка большинства современных вебсерверов, таких, как Apache, Microsoft Internet Information Server, Netscape и многих других. Для большинства серверов PHP поставляется в качестве модуля, для других, поддерживающих стандарт CGI, PHP может функционировать в качестве процессора CGI.

Работая с PHP, вы можете выбрать операционную систему,вебсерверы, процедурное или объектно-ориентированное программирование или же их сочетания. Возможности PHP включают формирование изображений, файлов PDF ,текстовых данных к примеру XHTML Ю XML.
PHP поддерживает разнообразные базы данных:

MySQL MySQLi SQLite PostgreSQL
Oracle (OCI8) Oracle Microsoft SQL Server Sybase
ODBC mSQL IBM DB2 Cloudscape и Apache Derby
Informix Ovrimos SQL Lotus Notes DB++
DBM dBase DBX FrontBase
Ingres II SESAM Firebird / InterBase Paradox File Access
MaxDB FilePro SESAM UNIX dbm


Возможности PHP с помощью встроенных средств :
- автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
- автоматизированная отправка HTTP-заголовков;
- работа с HTTP-авторизацией;
- работа с cookies и сессиями;
- работа с локальными и удалёнными файлами, сокетами;
- обработка файлов, загружаемых на сервер;
- работа с XForms.

Примеры применения PHP

На этом сайте мы уже писали программу Hello world на яэыках JavaScript,Visual Basic, C++. Напишем ее и на PHP на странице HTML.

<html>
<head>
<title>
Здравствуй мир
</title>
</head>
<body>
<?php echo 'Hello, world!'; ?>
</body>
</html>

Также возможен более короткий вариант вывода строки: <?= 'Hello, world!' ?>

Открывающий тег вида <?= используется для сокращённой записи конструкций используемых для вывода строки. Помимо ограничителей <?php ?>, допускается использование дополнительных вариантов, таких как <? ?> и <script language="php"> </script>.



Имена переменных начинаются с символа $, при зтом тип переменной не объявляется. Имена переменных и констант зависят от регистра символов. Имена классов, методов классов и функций не зависят от регистра символов. Переменные обрабатываются в строках, заключённых в двойные кавычки, и не обрабатываются заключённых в одинарные кавычки.

PHP рассматривает переход на новую строку как пробел. Инструкции разделяются с помощью точки с запятой (;), за исключением случаев, после объявления конструкции if/else и циклов.

Переменные в функцию можно передавать как по значению, так и по ссылке (используется знак &). Комментарии в PHP поддерживаются трех типов комментариев: (ограниченные /* */)
(начинающиеся с // и идущие до конца строки)
(с # до конца строки).

Типы данных

В PHP не требуется указание типа при объявлении переменных, так же и самого объявления переменных.

К скалярным типам данных относятся:
логический тип (boolean)
строковый тип (string)
целый тип (integer)
вещественный тип данных (float, double)
специальный тип NULL

К нескалярным типам относятся:
массив (array)
объект (object)
ресурс (resource)

К псевдотипам относятся:
number - число (integer или float)
callback - (string или анонимная функция)
mixed - любой тип
void - отсутствие параметров

- Логический тип (boolean) принимает только два значения TRUE (истина) и FALSE (ложь).
- Тип NULL предназначен для переменных без определённого значения.
- Ссылки на внешние ресурсы имеют тип "ресурс" (resource).
- Массивы (array) поддерживают числовые и строковые ключи и являются гетерогенными. Массивы могут содержать значения любых типов, включая другие массивы.
- Указатель на функцию в PHP может быть представлен замыканием или псевдотипом callback. Замыкание доступно с версии 5.3

Примеры программ на PHP

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

Код формы обратной связи:

Сейчас мы разработаем приложение "Гостевая книга на PHP".

Сообщения будут храниться в файлах, которые расположены в папке MMAIL. Код размещен в двух файлах: index.php (отображение сообщений) и ad.php (добавление сообщений, их проверка и запись в файл).

Итак, создайте файл ad.php и в той же директории, в которой расположен этот файл создайте директорию RECORDS.

Сначала проверяем, ввел ли пользователь данные и правильно ли он их ввел:

<?
  $error = "";
  $action = $HTTP_POST_VARS["action"];
  if (!empty($action))
  {
    $name = trim($name);
    $msg = trim($msg);
      if (empty($msg)) // если не введено сообщение
      {
        $action = "";
        $error = $error."<LI>Вы не ввели сообщение\n";
      }
      if (empty($name)) // если не введено имя
      {
        $action = "";
        $error = $error."<LI>Вы не ввели имя\n";
      }
      if (!empty($email))
      /* если введен e-mail, то проверяем с помощью регулярного выражения
      правильность ввода */
      {
        if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
        {
          $action = "";
          $error = $error."<LI> Неверно введен е-mail.&nbsр Введите e-mail
          в виде <i>softtime@softtime.ru</i> \n";
        }
      }

Теперь обрабатываем введенный пользователем текст функциями удаления HTML-тегов и обратных слешей:

$name = substr($HTTP_POST_VARS["name"],0,32);
$name = htmlspecialchars(stripslashes($name)); // обрабатываем имя
$city = substr($HTTP_POST_VARS["city"],0,32);
$email = substr($HTTP_POST_VARS["email"],0,32);
$email = htmlspecialchars(stripslashes($email)); // обрабатываем e-mail
$url = substr($HTTP_POST_VARS["url"],0,36);
$msg = htmlspecialchars(stripslashes($msg)); // обрабатываем сообщение

В нашей гостевой книге поддерживается полужирное начертание, курсив, подчеркивание, верхние и нижние индексы. Для того, чтобы пользователь мог, к примеру, выделить блок текста в сообщении курсивом, его необходимо заключить в теги <i></i> и т.д. Поэтому для после того, как текст введен, нужно заменить эти искусственные теги на их реальное HTML-представление:

if (empty($error)) // если ошибок нет, обрабатываем сообщение
  {
    $msg = nl2br($msg);
    $msg = str_replace("[u]","<u>",$msg);
    $msg = str_replace("[U]","<u>",$msg);
    $msg = str_replace("[i]","<i>",$msg);
    $msg = str_replace("[I]","<i>",$msg);
    $msg = str_replace("[b]","<B>",$msg);
    $msg = str_replace("[B]","<B>",$msg);
    $msg = str_replace("[sub]","<SUB>",$msg);
    $msg = str_replace("[SUB]","<SUB>",$msg);
    $msg = str_replace("[sup]","<SUP>",$msg);
    $msg = str_replace("[SUP]","<SUP>",$msg);
    $msg = str_replace("[/u]","</u>",$msg);
    $msg = str_replace("[/U]","</u>",$msg);
    $msg = str_replace("[/i]","</i>",$msg);
    $msg = str_replace("[/I]","</i>",$msg);
    $msg = str_replace("[/b]","</B>",$msg);
    $msg = str_replace("[/B]","</B>",$msg);
    $msg = str_replace("[/SUB]","</SUB>",$msg);
    $msg = str_replace("[/sub]","</SUB>",$msg);
    $msg = str_replace("[/SUP]","</SUP>",$msg);
    $msg = str_replace("[/sup]","</SUP>",$msg);
    $msg = eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a
                       href=\\2>\\2</a>\\3",$msg);
    $msg = str_replace("\n"," ",$msg);
    $msg = str_replace("\r"," ",$msg);

Открываем файл и добавляем в него, введенную пользователем информацию:

    /* создаем файл с именем вида "rec.+время добавления сообщения" */
    $file = fopen("records/rec.".time(),"w");
    // записываем информацию в файл, по одной строчке на каждое поле
    fputs($file,$name."\n");
    fputs($file,$email."\n");
    fputs($file,$msg."\n");
    // закрываем файл
    fclose($file);

Вызываем скрипт index.php, ответственный за отображение сообщений:

  print "<HTML><HEAD>\n";
  print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>\n";
  print "</HEAD></HTML>\n";
  }
  }

Добавляем код вывода сообщений об ошибках и HTML-код формы добавления сообщения:

  if (empty($action))
  {
    <?
    <HTML>
    <HEAD>
    <TITLE>Гостевая книга - добавление записи</TITLE>
    </HEAD&tg;
    <BODY>
    <H3>
      <? print "<center>"; ?>
      <font color=#1E90FF>Добавление записи</font>
    </H3>
    <?
    if (!empty($error))
    /* если есть ошибки, выводим сообщение об ошибках */
    {
      print "<P><font color=green>Во время добавления записи произошли
      следующие ошибки:</font></P>\n";
      print "<UL>\n";
      print $error;
      print "</UL>\n";
    }
    ?>
    <!-- пишем HTML-код формы добавления сообщений !-->
    <center>
     <table width=1 border=0>
     <form action=ad.php method=post>
     <input type=hidden name=action value=post>
    <tr>
     <td width=50%>Имя:<font color=red><sup>*</sup><font></td>
     <td align=right>
       <input type=text name=name maxlength=32 value='<? echo $name; ?>'>
     </td>
    </tr>
    <tr>
      <td width=50%>E-Mail:</td>
      <td align=right>
        <input type=text name=email maxlength=32 value='<? echo $email; ?>'>
      </td>
    </tr>
    <tr>
      <td colspan=2>Сообщение:<font color=red<sup>*</sup></font><br>
        <textarea cols=50 rows=8 name=msg><? echo $url; ?>
        </textarea>
      </td>
    </tr>
    <tr>
      <td colspan=2><input type=submit value='Добавить'></td>
    </tr>
  </form>
  <tr>
    <td colspan=2><font color=red><sup>*</sup></font> - поля,
      обязательные для заполнения
    </td><td align=left>
  </table>
  </center>
  </BODY>
  </HTML>
  <?
   }
  ?>

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


Добавление записи
Имя:*
E-Mail:
Сообщение:*
* - поля, обязательные для заполнения

Листинг файла index.php, используемого для отображения сообщений:

  <HTML>
  <HEAD>
  <TITLE>Гостевая книга</TITLE>
  </HEAD>
  <BODY>
  <?
  /* открываем директорию и считываем из нее файлы */
  $dir_rec = dir("records");
  $i = 0;
  while($entry = $dir_rec->read())
  {
    if (substr($entry,0,3)=="rec")
    {
      $names[$i]=substr($entry,4);
      $i++;
    }
  }
  $dir_rec->close(); // закрываем директорию
  @rsort($names); // сортируем файлы
  /* определяем очередность сообщений и выводим их */
  $count = $i;
  $count1 = $count;
  if (empty($start))
  {
    $start = 0;
  }
  $start = intval($start);
  if ($start < 0)
  {
    $start = 0;
  }
  print "<center>";
  if ($count > $start + 10) $count = $start + 10;
  if ($start != 0)
  {
    print "<A href=index.php?start=".($start - 10).">Предыдущие</A>";
  }
  print "<a href=ad.php>Добавить запись</A>";
  if ($count1 > $start + 10)
  {
    print "<A href=index.php?start=".($start + 10).">Следующие</A> \n";
  }
  print "</center><br>";
  /* выводим все сообщения в цикле */
  for ($i = $start; $i < $count; $i++)
  {
    $entry = $names[$i];
    $data = file("records/rec.".$entry);
    $date = $entry;
    $name = trim($data[0]);
    $city = trim($data[1]);
    $email = trim($data[2]);
    $url = trim($data[3]);
    $msg = trim($data[4]);
    /* поле, в которое администратор может добавить ответ */
    $answer = trim($data[5]);
    print "<table border=0 cellspacing=0 cellpadding=2 width=100%>
    <tr bgcolor=#F0F0F0><td>&nbsр;";
    print "<b>$name</b>&nbsр;";
    if (!empty($city)) print "$city&nbsр";
    if (!empty($email)) print "<a href=mailto:$email><i>$email</i></A>\n";
    if (!empty($url)) print "<a href=$url>$url</a>";
    print "</td><td align=right>".date("<b>d-m-Y</b> H - i, $date)."
    </td></tr>\n<tr><td colspan=2>\n";
    print "<P>".$msg."</P>\n";
    if (!empty($answer)) // если администратор что-то ответил
    {
      print "<P><font color=#1E90FF>admin:&nbsр$answer</font></P>\n";
    }
    print "</td></tr></table>\n<br><br>\n";
  }
  print "<center>";
  if ($start != 0)
  {
    print "<A href=index.php?start=".($start - 10).">Предыдущие</A>";
  }
  print "<a href=ad.php>Добавить запись</A>";
  if ($count1 > $start + 10)
  {
    print "<A href=index.php?start=".($start + 10).">Следующие</A> \n";
  }
  print "</center>";
  ?>
  </BODY>
  </HTML>

Справка
Для сайта







Для создания сайта вам потребуется текстовый редактор.На крайний случай можно воспользоваться Блокнотом из стандартных программ Windows,но лучше сразу скачать текстовый редактор предназначенный для создания сайтов,например Notepad.


У вас на компьютере должны быть установлены основные браузеры Internet Explorer,Opera, Google,Firefox, для обработки графики должен быть установлен графический редактор к примеру бесплатный Photoscape.


Для закачки файлов вашего сайта на хостинг скачайте и установите FTP-клиент,к примеру бесплатный Filezilla.


Также установите простую программу для анимации.

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

Чаще производите чистку и дефрагментацию жестких дисков. Раз в месяц производите проверку и исправление ошибок реестра.





Новые Технологии



Наверх