
- •Понятие базы данных и системы баз данных
- •Компоненты системы баз данных
- •Языковые средства сбд
- •Программные средства сбд
- •Технические средства сбд
- •Операции с бд
- •Администрация базы данных
- •Взаимодействие компонентов системы баз данных
- •Классификация баз данных
- •Классификация субд
- •Классификация систем баз данных
- •Модели данных
- •Основные понятия реляционной модели данных
- •Целостность реляционных данных
- •Операции над отношениями
- •Нормализация баз данных
- •Первая нормальная форма (1нф)
- •Вторая нормальная форма (2нф)
- •Третья нормальная форма (3нф)
- •Нормальная форма Бойса-Кодда (бкнф)
- •Нормальные формы высших порядков (4нф и 5нф)
- •Уровни моделирования предметной области
- •Концептуальное проектирование баз данных
- •Даталогическое проектирование
- •Физические модели
- •Case-средства разработки баз данных
- •Пример нотации er-модели – метод idef1x
- •Автоматическая генерация базы данных
- •Требования к распределенным базам данных
- •Базовые архитектуры распределенной обработки
- •Транзакции
- •Сериализация транзакций
- •Представления, хранимые процедуры, триггеры
- •Тиражирование данных
- •Резервное копирование и восстановление
- •Средства защиты данных
- •Sql. Что можно делать с помощью sql. Группы команд sql.
- •Типы данных sql.
- •Типы привилегий. Объектная и системная привилегии.
- •Команды языка определения данных. Команды языка управления данными. Команды языка управления транзакциями. Команды языка манипулирования данными.
- •Sql. Команда Create Table. Команда create user. Команда create view.
- •Sql. Команда create index.Команда create sequence. Команда create synonym.
- •Sql. Команда alter table.
- •Sql. Команда insert.
- •Sql. Команда delete.
- •Sql. Команда update.
- •Sql. Команда select.
- •Sql. Команда grant.
- •Sql. Команда revoke.
- •Sql. Команда drop.
- •Sql. Команды show , describe.
- •Sql. Строки и выражения.
- •Sql. Соединение таблиц.
- •Sql. Подзапросы.
- •Sql.Работа с null-значениями. Условие check. Ограничение unique.
- •Sql.Первичный ключ primary key.
- •Sql.Ограничения foreign key.
- •Возможности php. Преимущества php.
- •Преимущества php
- •Что нового в php5 ? Новая объектная модель Zend 2.0.Улучшенная производительность. Новые директивы. Новые механизмы работы с потоками. Новы функции php5. Новые расширения.
- •Движок» php. Программа на php . Php в html-документах. Комментарии в php-скриптах.
- •Переменные в php. Типы данных в php.
- •Константы в php. Выражения в php.
- •Конструкции языка php. Условные операторы. Циклы в php.
- •Конструкции языка php. Конструкции выбора. Конструкции возврата значений. Конструкции включений в php.
- •Пользовательские функции в php. Особенности пользовательских функций php. Создание пользовательских функций. Передача аргументов пользовательским функциям.
- •Функции и порядок работы с субд в php.
- •Основы ооп. Инкапсуляция. Полиморфизм. Наследование. Классы и объекты в php. Доступ к классам и объектам в php. Инициализация объектов. Наследование и полиморфизм классов в php.
- •70.Система xampp-1.8.1.Порядок установки в среде операционных систем Windows и Linux . Веб-сервер Apache.
- •71.Хостинг. Домен. Доменные зоны. Порядок проведения процесса размещения сайта. Перенос или трансфер доменов. Jabber. Сервис Whois. Обеспечение взаимодействия с субд.
- •Доменные зоны
- •72.Работа с формами. Обработка ввода пользователя. Передача файла на сервер. Отправка почты с вложением из php.
- •73.Язык Perl.Основные понятия. Cтруктуры данных. Скалярные величины. Простые массивы. Ассоциативные массивы. Простые операторы. Составные операторы.
- •75.Язык Perl. Операторы сравнения. Операторы эквивалентности. Побитовое и, побитовое или и Исключающее или. Логическое и и логическое или. Оператор диапазона. Условный оператор.
- •76.Язык Perl. Операторы присваивания. Оператор ``запятая''. Логическое не. Логическое и, или и Исключающее или. Оператор чтения из файла. Оператор замены строки. Оператор замены множества символов.
- •77.Язык Perl. Ссылки. Символьные ссылки.
- •78.Язык Perl. Регулярные выражения. Зарезервированные переменные.
- •79.Язык Perl. Встроенные функции.
- •80.Язык Perl. Подпрограммы и модули. Пакеты. Таблицы символов. Конструкторы и деструкторы пакетов. Классы.
- •81.Язык Perl. Объектная ориентация. Объекты. Классы. Методы. Вызов метода. Деструкторы.
Движок» php. Программа на php . Php в html-документах. Комментарии в php-скриптах.
Языки программирования бывают двух видов: интерпретируемые и компилируемые. А каким языком является PHP? Для того, чтобы ответить на этот вопрос, нам необходимо разобраться в терминологии.
Программа, переводящая код, написанный на одном языке программирования, на другой называется транслятором. Компилятор – это тоже транслятор. Он переводит код, написанный на языке высокого уровня, в машинный код. В результате процесса компиляции создается двоичный исполняемый файл, который уже можно запускать без компилятора.
Интерпретатор – это совершенно другая категория. Интерпретатор не переводит код, а исполняет его. Интерпретатор анализирует код программы и исполняет каждую его строку. Каждый раз при исполнении такого кода, необходимо пользоваться интерпретатором.
По производительности интерпретаторы значительно уступают компиляторам, поскольку двоичный код выполняется намного быстрее. Зато интерпретаторы позволяют полностью контролировать программу во время ее исполнения.
Что касается PHP, то он не является ни компилятором, ни интерпретатором. PHP представляет собой нечто среднее, между компилятором и интерпретатором. Попробуем в этом разобраться и рассмотрим, как PHP обрабатывает код.
Рассмотрим рисунок:
Мы видим, что PHP составлен из двух почти независимых блоков — транслятора и интерпретатора. Зачем же понадобилось так делать? Конечно, из соображений быстродействия.
На вход PHP подается сценарий. Он переводит его (транслирует) , проверяя синтаксис, в специальный байт-код (внутреннее представление). Затем PHP выполняет байт-код (а не код самой программы), при этом он не создает исполняемый файл.
Байт-код значительно компактнее обыкновенного кода программы, поэтому его легче (и быстрее) интерпретировать (выполнять). Посудите сами: синтаксический разбор осуществляется всего один раз на этапе трансляции, а исполняется уже "полуфабрикат" - байт-код, который гораздо более удобен для этих целей. Поэтому, PHP больше является интерпретатором, нежели компилятором. Такая «двойная работа» была необходима для следующих целей.
Рассмотрим цикл:
For (i=0;i<10; i++) {
Operator_1;
Operator_2;
Operator_3;
............
Operator_99;
Operator_100;
}
Такой цикл будет «крутиться» 10 раз. За каждый из этих десять проходов интерпретатор должен проанализировать и выполнить 100 строк кода. А в итоге ему нужно проанализировать и выполнить 10*100 = 1000 строк кода! Если перевести один раз весь цикл в байт-код, то анализировать ему придется в 10 раз меньше! А это значит, что сценарии будут выполняться в 10 раз быстрее!
Получается, что PHP является транслирующим интерпретатором.
Главной фазой работы PHP является интерпретация внутреннего представления программы и ее исполнение. Именно эта фаза и занимает больше всего времени в серьезных сценариях. Однако, замедление не так уж и существенно.
Стоит вспомнить, что PHP версии 3 был «чистым» интерпретатором», а с PHP 4 сценарии стали выполняться значительно быстрее, поскольку 4-я версия PHP (и PHP5) является интерпретирующим транслятором.
Язык Perl, который практически всегда называют компилятором, работает точно по такой же схеме — он транслирует текст программы во внутреннее представление, а затем использует результирующий код при исполнении. Так что, можно сказать, PHP версии 4 представляет собой компилятор ровно настолько, насколько им является Perl.
Итак, мы вынуждены заключить, что PHP является интерпретатором с встроенным блоком трансляции, оптимизирующим ход интерпретации.
Использование интерпретатора (а значит и PHP) имеет свои неоспоримые преимущества:
Нет необходимости заботится об освобождении выделенной памяти, не нужно закрывать файлы по окончании работы с ними – всю рутинную работу сделает интерпретатор, поскольку программа выполняется под его бдительным контролем;
Не нужно думать о типах переменных, а также не нужно объявлять переменную до его первого использования;
Отладка программ и обнаружение ошибок существенно упрощаются – интерпретатор полностью контролирует этот процесс;
В контексте web-приложений, интерпретатор также имеет еще очень важное преимущество – нет опасности «зависания» сервера при неправильной работе программы.
Есть и другие достоинства. Вообще, использование интерпретатора способно дать сценариям ту мощь, которую пользователи Web от них и ожидают.
Проигрыш в быстродействии PHP заметен в случае больших и сложных циклов, при обработке большого количества строк и т. д. Однако, заметьте, это единственный недостаток PHP, который будет все меньше и меньше проявляться по мере выхода более мощных процессоров, чтобы, в конце концов, вообще сойти на нет.
Итак, будем считать, что для написания первой программы на PHP у вас все готово: установлен и настроен веб-сервер и интерпретатор PHP. Если нет, то мы вам поможем, чтобы процесс установки и настойки программного обеспечения не был для вас сложным..
Традиционно, знакомство с языком программирования начинают с пресловутой программы "Hello, World!". Что ж, мы не будем отступать от этой традиции, и напишем нашу первую программу на PHP!
Итак, берем редактор PHP-кода (сойдет и простой текстовый редактор), и напишем следующий PHP код:
<?php echo "Hello, World!"; ?>
Прежде, чем запустить программу, ее нужно установить на сервере. Для этого сохраните написанный PHP скрипт под названием start.php. Затем скопируйте его в каталог DocumentRoot вашего сервера. По умолчанию, в Linux таким каталогом является /var/www/html (в старых версиях Linux - /home/httpd/html/). В Windows расположение каталога зависит от типа установленного web-сервера и его настроек. Теперь наберите в адресной строке вашего браузера http://localhost/start.php и, если все установлено и настроено правильно, вы увидите текст Hello, World!
Увидели? Если да, то поздравляем, вы написали первую простейшую программу (скрипт) на PHP!
А теперь разберем код нашего простейшего скрипта.
Код PHP заключается в специальные теги <? и ?> Начало скрипта отмечается открывающим тегом <? , а конец - ?> После открывающего тега <? следует первый оператор echo, который осуществляет вывод информации на экран. Оператор echo можно назвать самым главным, ведь он выводит информацию в браузер, в результате его работы мы и видим наш Hello, World!
Теперь давайте несколько усложним наш скрипт, добавив в него вывод html-тегов:
<?php echo "<html><body>"; echo "<h1>Hello, World!</h1>"; echo "</body></html>"; ?>
Наш несколько модифицированный скрипт теперь будет выводить большими буквами текст Hello, World!
Настало время вывести текст на русском языке. Вы, наверняка, спросите, а почему мы сразу не могли вывести текст на русском языке? Ответ заключается в том, что текст на русском языке, без указания определенного заголовка html-документа, может быть выведен некорректно. А теперь давайте, наконец, изменим наш скрипт так, чтобы он мог приветствовать нас на русском языке:
<?php echo "<html><head>"; echo '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'; echo "<title>Моя первый PHP скрипт</title>"; echo "</head>"; echo "<body>"; echo "<h1>Привет! Я PHP скрипт!</h1>"; echo "</body>"; echo "</html>"; ?>
Будьте внимательны, во второй строке кода html-код заключен в апострофы, а не в кавычки! Этим мы даем интерпретатору понять, что оператор echo должен выводить символы как есть, то есть не разбирая код в апострофах. А вот строки в кавычках позволяют выводить значения переменных, информацию по которым вы найдете здесь.
В приведенном скрипте мы послали браузеру заголовок <head><meta....></head>, который дает понять браузеру, какую мы будем использовать кодировку для вывода текста html-документа, а также указали текст заголовка браузера: <title>Мой первый PHP скрипт</title>. А затем вывели текст на русском языке: <body><h1>Привет! Я PHP скрипт!</h1></body>.
Вообще, теги можно и не выводить с помощью оператора echo. Мы можем вставлять PHP-код непосредственно в html-содержимое.
PHP в HTML-документах
Если вы рассмотрели предыдущюю страницу, то увидели, что всю информацию, включая html-код, мы выводили с помощью оператора echo. Однако PHP-скрипты можно писать и по-другому. Рассмотрим пример:
<html> <head> <title>Пример</title> </head> <body> <?php echo "Привет, я - скрипт PHP!"; ?> </body> </html>
Теперь вы можете сохранить приведенный PHP скрипт на сервере в виде файла .php, например start.php и проверить результат.
Html-код будет корректно обрабатываться интерпретатором PHP, поэтому у вас не будут возникать ошибки при выполнении этого скрипта.
Когда PHP обрабатывает файл, он просто передаёт его текст, пока не встретит один из специальных тегов, который сообщает ему о необходимости начать интерпретацию текста как кода PHP. Затем он выполняет весь найденный код до закрывающего тега, говорящего интерпретатору, что далее снова идет просто текст. Этот механизм позволяет вам внедрять PHP-код в HTML - все за пределами тегов PHP остается неизменным, тогда как внутри - интерпретируется как PHP код.
Существует четыре набора тегов, которые могут быть использованы для обозначения PHP-кода. Из них только два (<?php. . .?> и <script language="php">. . .</script>) всегда доступны; другие могут быть включены или выключены в конфигурационном файле php.ini. Хотя короткие теги и теги в стиле ASP могут быть удобны, они не так переносимы, как длинные версии. Кроме того, если вы намереваетесь вставлять PHP-код в XML или XHTML, чтобы соответствовать XML, вам следует использовать форму <?php. . .?>.
Теги, поддерживаемые PHP:
1. <?php echo("если вы хотите работать с документами XHTML или XML, делайте так\n"); ?> 2. <? echo ("это простейшая инструкция обработки SGML\n"); ?> <?= выражение ?> Это синоним для "<? echo выражение ?>" 3. <script language="php"> echo ("некоторые редакторы (например, FrontPage) не любят инструкции обработки"); </script> 4. <% echo ("Вы можете по выбору использовать теги в стиле ASP"); %> <%= $variable; # Это синоним для "<% echo . . ." %>
Первый способ, <?php. . .?>, наиболее предпочтительный, так как он позволяет использовать PHP в коде, соответствующем правилам XML, таком как XHTML.
Второй способ не всегда доступен. Короткие теги доступны только когда они включены. Это можно сделать, используя функцию short_tags() (только в PHP 3), включив установку short_open_tag в конфигурационном файле PHP, либо скомпилировав PHP с параметром --enable-short-tags для configure. Даже если оно включено по умолчанию в php.ini-dist, использование коротких тегов не рекомендуется.
Четвертый способ доступен только если теги в стиле ASP были включены, используя конфигурационную установку asp_tags.
Замечание: Поддержка тегов в стиле ASP была добавлена в версии PHP 3.0.4.
Замечание: Следует избегать использования коротких тегов при разработке приложений или библиотек, предназначенных для распространения или размещения на PHP-серверах, не находящихся под вашим контролем, так как короткие теги могут не поддерживаться на целевом сервере. Для создания переносимого, совместимого кода, не используйте короткие теги.
Закрывающий тег блока PHP-кода включает сразу следующий за ним перевод строки, если он имеется. Кроме того, закрывающий тег автоматически подразумевает точку с запятой; вам не нужно заканчивать последнюю строку кода в блоке точкой с запятой. Закрывающий тег PHP-блока в конце файла не является обязательным.
PHP позволяет использовать такие структуры:
Профессиональная вставка:
<?php if ($expression) { ?> <strong>Это истина.</strong> <?php } else { ?> <strong>Это ложь.</strong> <?php } ?>
Этот код работает так, как ожидается, потому что когда PHP встречает закрывающие теги ?>, он просто выводит все, что он находит до следующего открывающего тега. Приведенный пример более эффективен для вывода больших блоков текста, чем отправка всего текста через echo(), print() или что-либо подобное.
Комментарии в PHP-скриптах
Написание практически любой программы не обходится без комментариев.
PHP поддерживает комметарии в стиле 'C', 'C++' и оболочки Unix.
Комментарии в PHP могут быть трех типов:
<?php echo "Это тест"; // Это однострочный комментарий в стиле c++ /* Это многострочный комментарий еще одна строка комментария */ echo "Это еще один тест"; echo "Последний тест"; # Это комментарий в стиле оболочки Unix ?>
Однострочные комментарии идут только до конца строки или текущего блока PHP-кода.
<h1>Это <?php # echo "простой";?> пример.</h1> <p>Заголовок вверху выведет 'Это пример'.
Будьте внимательны, следите за отсутствием вложенных 'C'-комментариев, они могут появиться во время комментирования больших блоков:
<?php /* echo "Это тест"; /* Этот комментарий вызовет проблему */ */ ?>
Однострочные комментарии идут только до конца строки или текущего блока PHP-кода, в зависимости от того, что идет перед ними. Это означает, что HTML-код после // ?> БУДЕТ напечатан: ?> выводит из режима PHP и возвращает в режим HTML, но // не позволяет этого сделать.