www.samag.ru
Журнал «БИТ. Бизнес&Информационные технологии»      
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Интеграция Open Source-решений  

Open Source в облачной среде

Облачные решения становятся всё более популярными в мире. Компании стремятся использовать их для

 Читать далее...

Автоматизация  

Нейросеть вам в руки! Как использовать ИИ для автоматизации задач

Использование ИИ для автоматизации задач помогает компании получить конкурентное преимущество, поскольку объединение

 Читать далее...

Рынок труда  

Специалист по этическому ИИ, инженер по квантовым вычислениям или аналитик по метавселенной?

Новые тенденции в развитии ИТ могут привести к возникновению новых специальностей в

 Читать далее...

Книжная полка  

Учитесь убеждать и побеждать

Издательство «БХВ», как всегда, порадовало своих читателей хорошими книжными новинками. Кроме популярных

 Читать далее...

Сетевая инфраструктура  

Как удаленная работа меняет подход к сетевой инфраструктуре?

С увеличением числа сотрудников, работающих из дома, организации сталкиваются с необходимостью создания

 Читать далее...

Мониторинг  

Какой мониторинг нужен сегодня?

По мнению экспертов ГК InfoWatch, действия сотрудников – самая распространенная причина инцидентов

 Читать далее...

Книжная полка  

Руководство для тех, кто увлечен ИИ, программированием. И дизайном

Накануне лета издательство «БХВ» выпустило книжные новинки, от которых любителям чтения будет

 Читать далее...

Мобильные приложения  

Искусственный интеллект в мобильных приложениях: возможности и перспективы

Обзор современных применений ИИ в мобильных приложениях, анализ перспектив развития этой технологии,

 Читать далее...

ИТ-образование  

Как сделать ИТ-образование эффективным?

Эксперты ИТ-отрасли отвечают на вопросы «СА». Обсуждаем ключевые аспекты для улучшения образовательных

 Читать далее...

Work-life balance  

Как айтишнику найти баланс между работой и личной жизнью?

Обсуждаем инструменты для эффективного управления временем, снижения уровня стресса и достижения гармонии. На

 Читать далее...

Книжная полка  

Всё самое нужное – под одной обложкой

Отличительная черта книжных новинок, выпущенных недавно издательством «БХВ» – это их универсальность. Не просто

 Читать далее...

ИТ-инфраструктура  

Системы мониторинга ИТ-инфраструктуры-2025

Без мониторинга ИТ-инфраструктуры не обходится ни одна компания, хотя бы потому, что

 Читать далее...

Открытое ПО  

Безопасность Open Source: рискуем или контролируем?

Компания «Кросс технолоджис» изучила, как используется ПО с открытым кодом в компаниях

 Читать далее...

Работа с нейросетью  

Скажи, есть ли у тебя AI, и я скажу, кто ты

Недавно сервис по поиску работы SuperJob выяснил, что каждый второй россиянин уже

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 9985
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 10104
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 7570
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 4698
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 5522
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 5495
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 8249
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 4864
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 5127
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 9208
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 12654
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 14159
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 15892
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 10779
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 8772
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 7017
Комментарии: 4
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 6128
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 5058
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 4693
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 4933
Комментарии: 1
Рецензия на книгу «MongoDB в действии»

 Читать далее...

Друзья сайта  

 PHP

Архив номеров / 2003 / Выпуск №5 (6) / PHP

Рубрика: Программирование /  Веб-программирование

Сергей Яремчук СЕРГЕЙ ЯРЕМЧУК, фрилансер. Автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС

PHP

Я думаю, не будет большим секретом, что с помощью простого HTML-кода можно создать лишь статическую страничку. Но этого в современном быстроменяющемся мире уже недостаточно, необходимо быстро реагировать на изменения и выдавать новую информацию пользователю. К тому же возникает необходимость собрать информацию, например, с помощью анкет, автоматически ее обработать и выдать пользователю. С помощью HTML, увы, такие задачи решить невозможно. Какие только технологии не применяются сейчас для придания интерактивности веб-странице: DHTML, ASP, Perl, Java, ColdFusion. Есть в этом немаленьком списке и PHP. Не рассчитывал создатель данного языка Расмус Лердорф (Rasmus Lerdorf), что его язык приобретет такую большую популярность, а первоначально задумывал PHP исключительно для использования в своих личных целях, о чем свидетельствует даже расшифровка аббревиатуры – Personal Home Page (персональная домашняя страница).

Это была невзрачная CGI-оболочка, написанная на языке Perl. Позже, чтобы избавиться от значительных непроизводительных затрат, Perl-оболочка была полностью переписана на языке С. Затем все произошло так, как и с большинством популярных сейчас языков программирования (Perl, Python и т. д.): язык понравился, и программисты захотели использовать его для своих целей. Так в 1995 году появилась первая версия программы, содержавшая всего несколько простейших команд, позволявшая организовать на своей домашней странице счетчик, гостевую книгу и тому подобное. Сейчас PHP – мощный язык, имеющий в своем арсенале средства для работы с обычными файлами и базами данных (поддерживается большинство известных SQL-серверов), поддерживающий практически все протоколы, применяющиеся в сети Интернет (HTTP, FTP, SMTP, POP, IMAP), имеющий механизм регулярных выражений и к тому же прекрасно работающий с наиболее популярным веб-сервером Apache. Даже официальная расшифровка аббревиатуры изменилась на PHP – Hypertext Preprocessor, вот так в рекурсивном UNIX-стиле.

Что же представляет собой PHP? Это интерпретируемый язык, код которого встраивается прямо в обычный HTML-документ. Когда посетитель обращается к вашей страничке, то такая программа обрабатывается не браузером или сервером, а специальной программой-интерпретатором. Для того чтобы сервер знал, кто должен обрабатывать данный файл, его расширение изменяется на .php (.phtml, .php3 и другие, в зависимости от настроек сервера). Программа-интерпретатор, найдя инструкции, выполняет их и выдает полученный результат, который и видит пользователь, сам код остается недоступным. Это, кстати, неплохой способ скрыть комментарии, спрятать их в инструкциях PHP, которые пользователь не получает. При этом статическая часть документа, написанная на языке HTML, фактически является шаблоном, а изменяемая часть формируется при исполнении PHP-инструкций. Синтаксис языка очень напоминает C, а если быть точнее, то Perl. Те, кто программировал на этом языке, найдут много знакомого. Для вставки инструкций PHP в HTML-документ существует четыре варианта, приведу их все, так как на различных сайтах их часто можно встретить.

Первый и, наверное, наиболее предпочтительный, так как принят по умолчанию:

 Второй вариант, сокращенный:

Для того чтобы ваш интерпретатор понимал его, установите значение параметра short_open_tag=On в файле php.ini, который находится в каталоге, куда установлен PHP.

Третий вариант предназначен для тех, кто привык работать с ASP:

<% PHP-инструкции %>

опция asp_tags=ON.

И четвертый – в духе JavaScript:

<script language="php"> PHP-инструкции </script>

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

1.<HTML>

2.<HEAD>

3.<TITLE>Hello</TITLE>

4.<META HTTP-EQUIV="pragma" CONTENT="nocache">

5.</HEAD>

6.<BODY>

7.<?php  echo "Hello World";

8.?>

9.</BODY>

10.</HTML>

Примечание: нумерация приведена лишь для удобства, использовать ее в реальном документе не надо. Как видите, обычный HTML-документ. Четвертая строка необходима для указания браузеру, чтобы он не кешировал образовавшийся документ, иначе файлы будут выдаваться из кеша, а не запрашиваться у сервера, и вы можете не увидеть внесенные изменения. Вообще-то для этого можно использовать и встроенную функцию header, для HTTP/1.0 вызов будет таким:

header("Pragma: no-cache")

А строки 7, 8 просто выводят информацию. Результат можете посмотреть на рис. 1. Если необходимо использовать несколько операторов, то все они разделяются между собой «;», кроме последнего: после него ставить точку с запятой необязательно.

Рисунок 1

Рисунок 1

Теперь давайте узнаем всю информацию об установленном PHP. Создайте файл такого содержания:

Рисунок 2

Рисунок 2

Что, мало? А посмотрите, какой выход (рис. 2). Кстати, очень хороший способ узнать все о PHP на том сервере, где вы собираетесь размещать свои скрипты. Пойдем дальше. Как и положено полноценному языку программирования, в скриптах возможно использование переменных, например:

.

    $message="Hello World";

         echo $message

?>

И на выходе получим тот же результат. Это, как вы понимаете, очень удобно, ведь значение переменной можно изменять. Все переменные, как и в языке Perl, в PHP начинаются со знака доллара, после которого обязательно должен идти алфавитный символ (не цифра) или знак подчеркивания. Переменным можно присвоить до восьми различных типов данных:

  • booleans (принимает значения false, true);
  • integers (целые числа);
  • floating point numbers (вещественные);
  • string (строки);
  • array (массивы любых типов данных);
  • objects (объекты);
  • resourses (ресурсы);
  • NULL (никакое значение).

При этом, как и в Perl, значение типа переменной объявлять заранее необязательно, все это происходит автоматически. Чтобы проверить, введите такой пример:

.

    $message="Hello Worl";

    $message=4

         echo $message

?>

Переменной можно присваивать и результат выполнения функции (рис. 3): 

echo "Сегодня $d"

 ?>

Рисунок 3

Рисунок 3

И еще надо помнить, что регистр имеет значение, т.е. $var и $Var – это две различные переменные, будьте внимательны при наборе. Теперь кратко о типах данных.

Integer может принимать следующие значения:

  • $a = 1234 – обычное число;
  • $a = – 1234 – отрицательное;
  • $a = 0123 – восьмеричное;
  • $a = 0x123 – шестнадцатеричное.

Floating point numbers можно записать как в виде $a = 1.234, так и в «научной» нотации $a = 1.2e3. Строка – это данные, помещенные между двумя знаками «». О переменных, пожалуй, пока все, оставшиеся типы рассмотрим по ходу. Теперь попробуем что-нибудь посложнее. Создайте в папке сервера файл hello.inc такого содержания:

<?php

function printtitle() # объявляем функцию

    {

    print "<title>Hello from hello.inc</title>\n";

    }

function printnumbers($start)

    {

    print "<H2>"; // выводим начальный тег

    for($temp=0; $temp < 5; $temp++) 

    {  /*  теперь выведем значение переменной   */

    print $start++ . "<br>\n";

    }

    print "</H2>"; // выводим конечный тег

    }

?>

Теперь создайте файл hello1.php такого содержания:

<HTML>

<?php include("./hello.inc") ?>

<HEAD>

<?php printtitle() ?>

<META HTTP-EQUIV="pragma" CONTENT="nocache">

</HEAD>

<BODY>

Начинаем <p>

<?php

printnumbers(7);

?>

<p> Заканчиваем <p>

</BODY>

</HTML>

Теперь запустите браузер и наберите http://localhost/hello1.php. Результат посмотрите на рис. 4.

Рисунок 4

Рисунок 4

Давайте теперь разберем, что получилось. Начнем с файла hello.inc. Сначала обратите внимание на появившиеся комментарии: они при выполнении скрипта пропускаются и служат для того, чтобы потом можно было разобраться в программе. Дополнительно комментариями можно временно отключать ту или иную часть кода при отладке. Как вы видите, комментарии можно обозначать тремя различными способами. Знаки // и # действуют только до конца текущей строки, если есть необходимость в более длинном комментарии, то воспользуйтесь конструкцией в стиле С /* текст комментария */.

Следующий шаг – это объявление пользовательской функции. Первая функция printtitle() выдает с помощью функции print заголовок, который и выведет браузер. Посмотрите, здесь использована так называемая управляющая последовательность (escaped characters): символ , используемый для перехода на новую строку, в их число входит также символ – знак горизонтальной табуляции.

Функция printnumbers, как видите, уже принимает аргументы, мы просто увеличиваем значение переменной $start после каждого вызова функции print. Здесь используется оператор приращения, пришедший из языка С. Если данный оператор стоит, как в нашем случае, после переменной, то ее значение изменится уже после того, как оператор вернет значение, а если данный оператор поставить перед переменной (++$var), то ее значение изменится до того, как возвращается ее значение. Возможно также применение оператора уменьшения. Для того чтобы соединить две строки, используется точка, а не знак плюс. В конструкции print $start++ . «
» мы это и использовали. Со строками связан еще один интересный момент – подстановка переменных непосредственно в строку. Для этого строку необходимо заключить в двойные кавычки. Попробуйте такой пример:

<?php

   $name="Сергей";

   echo "Добрый день $name\n";

   echo 'Добрый день $name\n'

?>

Рисунок 5

Рисунок 5

Результат посмотрите на рис. 5. Как видите, в первой строке, заключенной в двойные кавычки, выведено значение переменной $name, а во второй строке с одинарными кавычками такой подстановки не произошло. Поэтому если вы хотите отобразить такие символы, как «$», «/», «“», «.» и некоторые другие, то они должны обязательно экранироваться обратным слэшем. А вот с помощью обратных кавычек можно выполнять команды интерпретатора.

<?php  

   echo `pwd`

?>

Рисунок 6

Рисунок 6

И браузер выведет название каталога, из которого запущен скрипт (рис. 6). Это, с одной стороны, придает гибкость, позволяя использовать мощный потенциал, заложенный в систему, а с другой – необходимость заботиться о безопасности, ведь злоумышленник может исполнить и такой скрипт:

<?php 

   $cat=`cat /etc/passwd`;

  echo  "<pre>$cat</pre>"

?>

Рисунок 7

Рисунок 7

И браузер выведет содержимое файла /etc/passwd (рис. 7). Дальше мы столкнулись с оператором цикла. Оператор for используется для итерационного выполнения команд, находящихся в теле цикла. В данном случае, пока переменная $temp не достигнет значения, меньшего или равного пяти, будет печататься значение переменной $start.

При этом возможны, например, и такие конструкции:

for ($i = 1; $i <= 10; print $start++ , $i++) ;

Все, с файлом hello.inc разобрались, давайте перейдем теперь к файлу hello1.php. Оператор include(“./hello.inc”) подключает внешний файл, в котором PHP будет искать информацию, если не найдет ее в основном файле. Использование одного файла позволяет избежать повторения одной и той же информации во всех файлах проекта. Да и в случае изменения какой-либо функции необходимо будет внести изменения только в один файл, а не в сотню. Обратите еще внимание на UNIX-стиль указания текущего каталога. Дальше вызываем на исполнение функцию printtitle(), которая выводит заголовок файла, а функция printnumbers(7), как видите, вызывается с аргументом, который будет передан в тело функции.

Теперь немного информации для тех, кто хочет начать изучать новый для себя язык программирования, но не знает, с чего начать. Для того чтобы полноценно работать с PHP, вам понадобится как минимум три вещи. Первая – собственно интерпретатор, здесь отправная точка – официальный сайт проекта http://www.php.net, где вы дополнительно найдете документацию (на английском) http://www.php.net/manual/en. Еще советую заглянуть на сайт http://www.phpbuilder.com, где также полно документации (опять же на английском), а вот по адресу http://pear.php.net расположен аналог Perl CPAN, называемый PEAR (PHP Extension and Application Repository), где можно найти большое количество готовых скриптов. Для тех, кто программирует под Windows, еще один полезный ресурс: http://www.php4win.com.

Но для полноценной работы необходимо наличие веб-сервера, здесь альтернативы очень удобному бесплатному и наиболее популярному веб-серверу Apache, который есть как для Windows, так и для UNIX-подобных операционных систем, нет. Найти индейца можно по адресу http://www.apache.org или его «русифицированный» вариант, который можно взять с сайта http://apache.lexa.ru.

И третий компонент, который может вам понадобиться – это какой-нибудь SQL-сервер. Здесь выбор большой, я лично использую MySQL http://www.mysql.com. Из редакторов под Windows (кроме блокнота) могу посоветовать CuteHTML или Arisesoft Winsyntax (http://www.winsyntax.com/files/site2/aswsyn20.zip).

http://quanta.sourceforge.net/quantadoc. А HTML-редактор bluefish имеет заготовки практически для всех функций PHP.

Пока все. До следующего раза. Успехов.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru