- заголовок таблицы
- заголовок в ячейке
| - ячейка
rowspan – объединение ячеек столбца -- | colspan – объединение ячеек строки -- |
top – вверх middle – середина bottom - вниз
SRC=“page3.html” NAME=“3”> Файл page2.html
page2 Link
Назад
Слайд 13Фреймы (продолжение) Разрешенные имена Зарезервированные неявные имена фреймов - blank – загружает документ
Слайд 14Формы
NAME – имя формы Action – указывает URL, по которому передается
введенная
информация Method – POST – в закрытом виде GET – в откр. через строку адреса
Token Ring – 16 MB
Регистрация
Зарегистрировать
Атрибуты NAME - имя поля SIZE - размер поля MAXLENGTH - максимальное количество слов VALUE - значение по умолчанию CHECKED - флажок/переключатель TYPE - тип поля
TEXT – ввод строки PASSWORD – ввод пароля CHECKBOX – простой флажок RADIO – сложный флажок RESET – кнопка «отменить» SUBMIT – кнопка «переслать» BUTTON - любое действие IMAGE - аналог SUBMIT (с индивидуальным рисунком) FILE - прикрепить файл
Слайд 18
SIZE=“15” MAXLENGTH=“12”
(по умолчанию)
- флажок - установленный флажок TEXT – ввод строки
PASSWORD – ввод пароля
CHECKBOX – простой флажок
Результат name=on name=off
TYPE = “radio” name=“choice” VALUE=“ch1”> CHECKED>Да Нет Результат name=value Да Нет Disabled – флажок не активный Да Нет
RADIO – сложный флажок
данные“> RESET – кнопка «отменить»
SUBMIT – кнопка «переслать»
FILE - прикрепить файл
Обзор
Слайд 21
Создание навигационных карт ссылок 1. Графиеское изображение карты ссылок 2. Файл определения карты ссылок (форматы CERN NSCA)
3. Программа или cценарий обработки карты ссылок
4. Карты ссылок, Обрабатываемые клиентом
Область по умолчанию: default http://www.myserver.com/mypage/index.htm Прямоугольная область: rect http://www.myserver.com/mypage/rectangle.htm 50, 40, 100, 120 Круглая область: circle http://www.myserver.com/mypage/rectangle.htm 50, 40, 100, 60 Многоугольная область: poly http://www.myserver.com/mypage/rectangle.htm 10, 20 24, 70 84, 45 07, 11 10, 20
1. Вызов CGI-программы:
2. Работа с провайдером:
SHAPE – форма области (rect, poly, circle, default) COORDS – список координат HREF – URL, на который ссылается область NOHREF – область – мертвая зона
Пример
100, 100” HREF = item1.html> - ссылка на карту ссылок 1
2
3
Назад
Слайд 23 XML Валидный документ - документ, который соответствует описанию структуры документа или схеме
документа (правила написания тегов ). - хорошо оформленный документ Для описания схемы документа используются язык DTD или XSD, где DTD - язык описания структуры документа; XSD - язык описания схемы документа. (Extensible Markup Languages – расширенный язык разметок)
язык HTML, приведенный в соответствие с XML
язык записи математических формул
язык записи химических формул
язык записи звуков
язык, применяемый в безпроводной технолог
ии
XHTML
MathML
CML
VoxML
WML
−
й
к
−
к
к
−
к
−
к
к
−
л
Слайд 24
Сидорова
для пустых элементов XML (Extensible Markup
Languages – расширенный язык разметок)
> sp suppl prod
sp suppl prod
< >
: / :
< > < >
sp qty 500 sp qty
< > < >
sp pname sp pname
< > < >
: Санкт-Петербург / :
sp sname sp sname
: Иванов / :
< > < >
- корневой элемент – имя БД
- имя элемента – имя таблицы
- имя столбца – значение строки
Поставка гаек
:
: гайка / :
/ : _
: _
/ : _
SQL
sp: suppl_prod
sp snum 10123
sp : snum
sp loc sp loc
sp suppl prod
< >
< >
>
<
M
>
xml version = “1.0”
encoding= “Windows - 1251”?>
DOCTYPE supplprod
SYSTEM “suppl-prod.dtd”>
< sp : supplprod xmlns : sp = “http://...”>
Слайд 27Язык DTD (Document type Definition)
Слайд 28
< name reg_num=“1045”> Иванов < name reg_num=“1052” Петров < / name>
post ref = “ 1045”> Зав. отделом post>
Иванов = зав. отделом
Слайд 30
- задаются при объявлении сущности ENTITY
;
.
. -содержаться в отдельных файлах
- используеться только внутри объявления DTD
R
;
Слайд 31
не разбираемая программой анализатором сущность →
Обьявление обозначения (NOTATION) →
связывает image – gif с программой обработки изображений
в файле viewer.exe !_
NOTATION image_gif SYSTEM “viewer.exe”
<
й
к
к
к
к
к
к
л
Слайд 32 Пример описания DTD. Записная книжка
t
Слайд 33 Язык XSD (Описание схемы документа – XML Shema Definition)
XSD – реализация
XML. Корневой элемент shema.
date Time
символов
Слайд 34
6 арабских цифр фасетка “регулярное выражение“ Фасетка (facets) “наибольшее значение“
Слайд 36
частично упорядочен значением значением Используются как атрибуты тэгов в фасетках
Слайд 37
тип элементов simpleType name < xsd : element name = “days”
type = “list of Integer” /> список из целых чисел < 5
/>
/>
Слайд 38
/> Listofinteger“ /> />
Обьединение union →
+ attribute name = “size” >
Слайд 39
Объявление элементов element → /> /> />
Обьявление атрибутов attribute → “обязательность
по умол-чанию = 1 /> э э
Слайд 41 Язык XLINK
адрес ресурса способ показа ресурса момент активации ссылки начальные и конечные
пункты ссылок смысл ссылки
type – тип ссылки
href
show
actuate
label,from,to
role, arcrole, title
→
й
к
−
к
к
−
к
−
к
к
−
к
к
к
−
л
“http://www.w3.org/1999/xlink” >
Слайд 42
a, img
элемент ссылка указатель на ресурс информ. ресурс /> />
Слайд 44
указ. на ресурс удалённый указ. на ресурс удалённый
Слайд 47
/> arc адрес ссылки адрес ресурса описания ссылки arc
Слайд 61
Петр Иванов Петр Иванов
Иванов name>
($n= “Петр”, $i=1) ($n= “Иванов”, $i=2)
10,1 x> 10,2 x> 10,3 x> 20,1 x> 20,2 x> 20,3 x>
Если выражение истина, то Выполняется выражение return
order by - сортировка ascending – по возрастанию descending – по убыванию
< book year=“1992”> < title > Advanced… title > book>
< title > Data on the Web title > < author > < last > Suciu last > < first > Dan first > author > book >
Слайд 68Каскадные стили (CSS) Cascading style sheets
Слайд 70
/ 4.Классы > переопределение свойств тэга
Слайд 71
align pt – пункты (1..7) 1pt - 8px
2pt - 10px ⇣ 7pt – 36px
Strong {font-weight:normal}
не будет видна жирность, но бу- дет индексация
screen – дисплей print – принтер ⋮ all – все устройства
Слайд 72
square)
из нумерованного в маркерованный decimal ) из маркерованного в нумерованный
p span {color : blue} -
переопределение свойств тэга span внутри параграфов.
.
Ul li.forlist {background : blue} - изменение свойств li для маркерованного списка
На 1 странице не может быть 2 одинаковых ID. Определяются глобальные классы
Слайд 73
A: hover {color : red} – при наведении мышки P: first –
line {font – weight : bold} – первая строка жирная P: first – letter {font – weight : bold} – первая буква жирная ⋮
Слайд 74Создание адаптивных
сайтов Адаптивная верстка
Слайд 75Что такое адаптивный веб дизайн? Цель адаптивного веб дизайна?
Адаптивный веб-дизайн (англ. Responsive
Web Design) — дизайн веб-страниц, обеспечивающий корректное отображение сайта на различных устройствах, подключённых к интернету и динамически подстраивающийся под заданные размеры окна браузера.
Целью адаптивного веб-дизайна является универсальность веб-сайта для различных устройств. Для того, чтобы веб-сайт был удобно просматриваемым с устройств различных разрешений и форматов, в частности мобильных устройств, планшетов.
Слайд 76Адаптивный дизайн Progressive Enhancement Mobile first Responsive Design
Media Queiries Flexible Media Fluid grid
Схема адаптивного дизайна
Слайд 77 Responsive Design
Fluid grid – так званая, гибкая сетка макета
Flexible media
– гибкая медиа(все ваши изображения, видео, флеш вставки)
Media queiries– медиа запросы
Слайд 78
Progressive enhancement или
Graceful degradation?
Graceful degradation –противоположный к Progressive enhancement, верстка
начинается с самых новых браузеров, и урезается в зависимости от вида на старых браузерах.
Progressive enhancement – верстка начинается с самого старого но поддержуемого браузера(например IE8), выполняются самые простые действия, а уже увеличиваете сайт по принципам Responsive Design
Слайд 80Что такое Mobile first ?
Проектирование начинается с адаптивной версии веб-сайта для
мобильных устройств. На этом этапе дизайнеры стремятся правильно передать смысл и основные идеи с использованием небольшого экрана и всего одной колонки. Содержимое при необходимости сокращают, удаляя второстепенные информационные блоки и оставляя самое важное
Слайд 81Создание адаптивных
сайтов Как перевести статичную разметку в гибкую.
Слайд 83Мета тэг “viewport” отвечает за отображение на мобильных устройствах ширина = ширине
устройства масштаб(как правило 1)
Для поддержки HTML5 в IE8 можно добавить такие библиотеки как:
Слайд 84Предположим у нас есть обычный css. шрифты Фиксированый размер
Сайдбар
Слайд 85Cамый простой способ проверить его адаптивность – cузить экран браузера :
Слайд 86Для начала нам нужно убрать все константы размеров, что бы величина
то ли фрейма, то ли контейнера зависела от других чисел Сделаем ширину контейнера не статической Как сделать сайт адаптивным?
Вне зависимости от ширины – будут отступы в 5%
Сделаем ширину контейнера не статической Для этого воспользуемся формулой :
(ЦЕЛЬ / КОНТЕКСТ)* 100 = РЕЗУЛЬТАТ
Слайд 87Так как за основу мы брали 960 px, это и будет
наш контекст. section : (650px / 960px) * 100 = 67.7 % aside : (300px / 960px) * 100 = 31.25 %
Слайд 89Для расчета размеров шрифтов мы используем такую формулу : Что на счет
шрифтов?
24px / 16px = 1.5 em
На самом деле эта формула уже есть в нашем коде :
шрифт
Высота между строк
Слайд 91 Гибридная верстка – комбинирование статической верстки с адаптивной(резиновой) Что такое гибридная верстка? Давайте
попробуем добавить в наш сайдбар картинку :
Слайд 93 У табличной верстки есть одно положительное свойство :
Ячейки таблиц принимают
ширину контента который задается внутри этой ячейки Как решить эту проблему?
Слайд 94С помощью свойства дисплей добавляем такие свойства : Свойство DISPLAY
Слайд 96Но как мы видим, это далеко не идеальный вариант, так как
Слайд 98Что такое гибкая сетка? Для примера мы взяли один из новостных сайтов,
если
присмотреться то можно увидеть определенную сетку
Слайд 99Для удобства дизайны предоставляются в таком формате,
уже с существующей сеткой:
для лучшего понимания
верстальщика и дизайнера :
Слайд 100Ту же самую сетку мы можем видеть на сайте :
Слайд 101Что такое гибкая сетка?
Гибкая сетка – отличается тем что ширина столбца
задается не статически как в обычной сетке(когда ширина вымеряется по макету в photoshop), а относительно ширины экрана
Слайд 102Стационарный
компьютер Ноутбук Планшет Мобильное устройство
Слайд 103То есть если на стационарной версии мы видим 4 столбца сетки
Слайд 104То на планшете это будет 3 уменьшеных столбца,
а на мобильном
устройстве и вовсе один :
Слайд 105Несколько макетов(для разных экранов), и вы верстаете конкретно по макетам. Но
это не вкладывается в основные положения адаптивной верстки Mobile First, где верстка и дизайн тесно пересекаются. Изначально строятся прототипы, с помощью специальных программ(пример – Balsamiq) Методы для создания гибкой сетки?
Слайд 106Программы создания адаптивной верстки 1140px Bootstrap Foundation Для того что бы понимать как работает гибкая
сетка, нужно сделать ее самому.
Слайд 107Для начала у нас есть простая заготовка и css : Контейнер :
Слайд 108Так как мы будем делать обычную стандартную гибкую сетку на 12
столбцов, нам нужно узнать сколько места будет занимать каждый столбец. В процентном соотношении это : 100 % / 12 = 8.3333 % Далее в css файле создаем колонки : Задаем внешние
параметры, стиль
Задаем ширину
Слайд 109Создав все 12 столбцов(число столбцов может быть различное, и их процентное
соотношение, естественно тоже) получаем :
Слайд 111Добавив стили получаем : Результат не сильно радует , почему же?
Слайд 112Из-за наших отступов, padding и margin. Рассмотрим
классическую бокс модель :
Слайд 113Для того что бы убрать стандартную бокс модель,
нужно изменить определенное
свойство : content-box Основывается на стандартах CSS, при этом свойства width и height задают ширину и высоту контента и не включают в себя значения отступов, полей и границ.
border-box Свойства width и height включают в себя значения полей и границ, но не отступов (margin). Эта модель используется браузером Internet Exporer в режиме несовместимости.
padding-box Свойства width и height включают в себя значения полей, но не отступов (margin) и границ (border).
Слайд 114Добавляем определенное свойство :
Получаем нужный нам результат :
Слайд 116Давайте попробуем просто так задать колонке
очень длиный текст Как видим, вся верстка
Слайд 117Для того что бы такого не случалось, нам нужно задать
обертку,
а именно : Добавляем специальные параметры очищения в сss :
Слайд 118Получаем результат – нашу адаптивную сетку :
Слайд 120В css 2.0 появилось такое понятия как @media
Слайд 121Например для того что бы использовать особый стиль для «файла на
печать» используем И обозначаем наш стиль в css классе
Слайд 122Тип media handheld должен обрабатывать мобильные устройства, но оно не совершенно
в современном мире, в связи с большим количеством устройств. Для этого и нужны media queries Почему media queries?
Слайд 123
Для всех экранов с шириной не больше 320 px сделаем определенный
стиль
Если вы использовали правило viewport, можно задавать просто max-width, если же этого правила в разметке нету, нужно указывать так же device.
Cоздадим базовое правило(media query) :
Слайд 124Существует четыре основных оператора в правилах media
AND COMMA NOT ONLY
Логические операторы
Слайд 125Используя cетку изученную ранее сделаем ранее сделаем простую верстку
Слайд 126Видим что дизайн отзывчивый, но при моменте когда ширина равна мобильному
девайсу, выглядит не очень. Что бы решить эту проблему нам и нужны media queries
Слайд 127Обозначим стиль для этого правила, и посмотрим на результат :
Слайд 128Но эта версия не является MOBILE FIRST.
Слайд 129Mobile first версия выглядит так :
(321 пиксель, не опечатка)
Слайд 131Для начала имеем стандартную гибкую разметку + стили, все то же
самое что мы учили до этого. Так же приводим все новые HTML 5 теги к блочным элементам Пример flexible media :
Блочные элементы
Слайд 132Попробуем вставить эту media в стандартную верстку : Использование media
Слайд 133Результат : Отрицательные стороны : Размер картинки может быть Относительно большого размера
- Контент
должен быть выделен,
главные его части
Слайд 134Для этого создается несколько картинок из оригинала, в которых выделяется самый
важный контент из оригинала для определенных размеров Для оптимизации картинок есть очень большое количество сервисов в интернете, по запросу image optimizer
Можно так же делать это с помощью photoShop, но выгоднее и удобнее пользоваться веб/десктоп сервисами
Совет : используйте Picturefill
Оптимизация изображений
Слайд 135Так будет выглядеть разметка с уже оптимизированными картинками разных размеров
Пример
Слайд 137А что если мы хотим добавить изображение как фон окна? То
есть на background? Рассмотрим такой случай:
Картинка для фона
Слайд 138Результат : Но тем не менее
это все равно изображение которое очень много
Слайд 139Cделаем это с помощью media queries
Media Queries
Слайд 141Теперь давайте рассмотрим то, как делать все то же самое для
Retina display Во первых, размер картинки должен быть не 320 а 640 (детальнее читайте про Retina) Картинки для Retina
Слайд 143По результат прошлых лекций, мы получили макет гибкой адаптивной верстки. Мы
видим тут есть небольшая проблема с заголовками. Решим ее Проблема с заголовком
Слайд 144Так как стандарты размеров меняются с каждым днем, следить за ними
лучше всего в реальном времени и часто перепроверять Именно по этому четко привязываться к каким либо цифрам/размерам не стоит
Слайд 145Переходи в developers tools в Chrome, для того что бы видеть
размер текущего окна. И экспериментально смотрим хорошо
Не очень, заголовки наезжают
Developer tools
Слайд 146Statements(инструкции), Expressions(выражения), Operators(операторы)
Слайд 147Statements(команды/инструкции) – в Javascript это так званые «инструкции» которые веб браузер
будет выполнять. Одним из правил «хорошего кода» является то, что бы писать каждый statement с новой строки Statements(инструкции)
Слайд 148 Парсер – переводит код вашей программы в саму программу. Так званый
переводчик между машинным языком и человеческим. Посмотреть работу парсера можно в консоле браузера на следущем слайде. Expression(выражение) – это то, что парсер должен обработать что бы вернуть результат Literal(литерал) - это выражение, которое не требует работы парсера для обработки Expressions(выражения)
Слайд 149Пример Обозначили переменную Присвоили
переменной
выражение Литерал Отображение в консоли браузера:
Слайд 151Обычные операторы, те же что и в калькуляторе + оператор модуля Арифметические
операторы имеют точно такие же приоритеты как и в математике Арифметические операторы
Слайд 152Но так как операторов в программировании намного больше, для того что
бы точно знать как будет работать ваш код, можете воспользоваться таблицей по ссылке https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Operator_Precedence MDN Operator percidence
Слайд 153Так же к арифметическим(основным) оператором относятся операторы присвоения(=), инкримента(++), декримента(--) Присвоили
переменной str
значение
литерала Выведем в консоль
Результат очевиден : i + 1 = 3 b – 1 = 1
Слайд 154Формы инкремента : В чем разница?
1.Увеличение
2.Вывод на экран 1.Вывод на экран
2.Увеличение
Слайд 156Используется когда в одной строке нужно сделать несколько действий Оператор “,”
Пример применения
Слайд 157Операторы сравнения Возвращают эти операторы логический ответ (true or false) Пример :
Слайд 158Операторы сравнения и неравенства не воспринимают типы данных, то есть :
Парсер
думает что логический 0(false) и 0 интовый это одно и то же, хотя это совсем разные типы данных Для сравнения разных типов данных используется строгое равенство(===) и строгое неравенство(!==)
Слайд 160Простой пример применения : Оператор условия if Результат :
Слайд 163Оператор условия “?”
Переменная
age При НЕ
выполнении
условия При выполнении
условия Операторы условия условие
Слайд 164Используются в основном в условиях, например :
if (age !== 20 ||
age < 20) { alert(‘YOUR AGE IS UNDER 20’)} Логические операторы
Слайд 166Создадим простое число Методы с числами Основные методы : 1: Добавляет числу float точку
2:
Превращает число в экспоненциальную форму
3: Оставляем количество цифр:
4: Перевод в строку с проверкой
Слайд 167Более сложные операции из модуля MATH Корень квадратный Возведение в степень Методы округления : Округление
к
меньшему( 234) Округление к
большему( 235)
Округление
обычное ( 234)
Константы :
Слайд 168NaN и Infinity NaN(Not a Number – вывод,тогда, когда число невозможно высчитать Например
:
Если хоть в одной части большого выражения получается NAN – все выражение тоже равно NAN (такое свойство называется «токсичность» :
Слайд 170Infinity Infinity – бесконечное число Например :
Свойства infinity: Больше любого числа Infinity + 1
Слайд 172Простой пример обьявления переменной типа string: В чем разница? В данном случае
“string” воспринимается
как
строка Тут же “string” не
воспринимается
компилятором
При выводе увидим :
Обьявление
Слайд 173Для того что бы избежать такой ситуации нужно использовать “экранирование” : Таким
образом вы говорите парсеру читать
эти символы как строку Второй способ – использовать переменную типа str
Экранирование
Слайд 174 Перевод строки : Символы внутри строк
Табуляция :
Слайд 175Length – количество символов в строке Свойства и методы строк Соединение строк Чаще всего
используется
Слайд 176charAt(index)– символ по указаному индексу charCodeAt(index) – получим код символа по индексу
0
индекс 1 индекс
subString(index) – получим строку начиная с index
subString(index , index2) – получим строку начиная с index до index2
Слайд 177slice(index)– получим строку начиная с index substr(index1, index2)
Индекс
начала подстроки Количество
символов
Слайд 178split(separator)– разделяет строку на массив replace(string1, string2)
Строку
которую менять В данном случае наш
«сепаратор»
это пробел
Строку на
которую менять
Слайд 179indexOf(char)– показывает индекс определенного символа upperCase , lowerCase
символ который ищем
Слайд 181Boolean В консоль выведется надпись «привет ребята, так как условие выполняется( !
– оператор не, инвертирует Boolean)
Слайд 182Все данные по умолчанию являются true, кроме ( в случае выполнения
кода будет 5 значений false): Все остальные же данные будут возвращать true
Слайд 183Во-первых, они не равны NULL это не UNDEFINED Undefined, null Что такое undefined?
Если вы задали переменную, но ничего ей не присвоили, ваше переменная будет иметь значение “undefined”
Слайд 184Попробуем провести несколько операций с обьектом: Например : Все три результата будут равны
Слайд 185Так же, если в функцию которая принимает параметр ничего не передать
: Вывод все равно будет - UNDEFINED
Слайд 187Явные Все три преобразования выполнятся правильно!
Слайд 188Если к числу добавить пустую строку, то результатом будет строка Быстро в
Слайд 189Что бы перевести что либо в булевое, достаточно поставить перед переменной
или значением знак “!!” Быстро в булевое значение
Слайд 190Что бы перевести что либо в число, достаточно поставить перед переменной
или значением знак “+” Быстро в число
Слайд 191Самым стандартным является метод toString() Методы для перевода parseInt VS paseFloat строка Система исчисления
Слайд 193Обьект, если обьяснять простым языком – контейнер ключей и свойств Что такое
обьект? Не используется
так как сложнее чем 2
Обьявление обьекта :
Слайд 194Зададим простой обьект c свойством и функцией: Теперь получим доступ к
свойству обьекта(в консоль выведеться
строка ‘str’ Теперь получим доступ к свойству обьекта(в консоль выведеться
строка ‘str’
Слайд 195К свойству можно достучаться двумя способами, каждый выберает тот который является
более удобным. Первое это через точку: Второе, это через квадратные скобки :
Оба способа дают один и тот же результат
Слайд 196Бывают такие случаи когда нам нужно получать каждый раз разные свойства,
тогда мы используем переменную. Тогда используется только квадратные скобки, например :
Слайд 197 Свойство по умолчанию Так как такого свойства
не существует, наша консоль
выведет в
лог только “name” Вторая часть, то что
выводится если 1 часть false
То есть мы сказали, если свойство fff обьекта obj является пустым, то тогда мы используем вторую часть
Слайд 198Что бы добавить свойство обьекту, достаточно просто присвоить не существующему свойство
какое нибудь значение : Действительно это свойство
появилось у обьекта
Так же мы можем изменять любое значение свойства :
Свойство изменилось
Слайд 199Обьекты всегда передаются по ссылкам, они никогда не копируются. Что это
значит? Предположим у нас есть 3 обьекта, каждый раз это новый обьект: Но если вы их приравняете, вы получите один и тот же обьект
(3 ссылки на один и тот же обьект) :
Слайд 200Удаление свойств Удаляем
свойство
Func Проверяем
Слайд 201Метод – это функция которая является свойством обьекта Методы Иногда в методе
нужно получить свойство самого обьекта к которому относится этот метод. Для этого есть ключевое слово THIS
эти две записи абсолютно равны, так как this заменяет имя обьекта внутри его
Слайд 202Ослабление глобальности – это создание одного глобального обьекта в котором будут
храниться все остальные, например : Ослабление глобальности
Поможет избежать проблем с другими фреймворками и прочими библиотеками
Слайд 203Теги PHP
Когда PHP обрабатывает файл, он ищет открывающие и закрывающие теги,
такие как , которые указывают PHP, когда начинать и заканчивать обработку кода между ними. Подобный способ обработки позволяет PHP внедряться во все виды различных документов, так как всё, что находится вне пары открывающих и закрывающих тегов, будет проигнорировано парсером PHP. PHP также допускает короткий открывающий тег , однако использовать их нежелательно, так как они доступны только если включены с помощью конфигурационной директивы php.ini short_open_tag, либо если PHP был сконфигурирован с опцией --enable-short-tags .
Слайд 204Изолирование от HTML
Все, что находится вне пары открывающегося и закрывающегося тегов,
игнорируется интерпретатором PHP, у которого есть возможность обрабатывать файлы со смешанным содержимым. Это позволяет PHP-коду быть встроенным в документы HTML, к примеру, для создания шаблонов. Это работает так, как и ожидается, потому что когда интерпретатор PHP встречает закрывающие теги ?>, он просто начинает выводить все что найдет пока не встретит другой открывающий тег за исключением случая с содержащимся внутри кода условным оператором, в котором интерпретатор определяет результат условия перед принятием решения что пропустить.
Слайд 205Комментарии
PHP поддерживает комментарии в стиле 'C', 'C++' и оболочки Unix
(стиль Perl). Это работает так, как и ожидается, потому что когда интерпретатор PHP встречает закрывающие теги ?>, он просто начинает выводить все что найдет пока не встретит другой открывающий тег за исключением случая с содержащимся внутри кода условным оператором, в котором интерпретатор определяет результат условия перед принятием решения что пропустить.
Слайд 206Переменные
Переменные в PHP представлены знаком доллара с последующим именем переменной. Имя
переменной чувствительно к регистру. Имена переменных соответствуют тем же правилам, что и остальные наименования в PHP. Правильное имя переменной должно начинаться с буквы или символа подчеркивания и состоять из букв, цифр и символов подчеркивания в любом количестве. Это можно отобразить регулярным выражением: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
Слайд 207Переменные извне PHP:POST
Когда происходит отправка данных формы PHP-скрипту, информация из этой
формы автоматически становится доступной ему. Простая HTML-форма
Доступ к данным из простой HTML POST-формы
Слайд 208Переменные извне PHP:GET
Ассоциативный массив параметров, переданных скрипту через URL. В нашем
примере мы использовали предопределенную переменную $_GET['name'], чтобы "принять" параметр name.
Слайд 209IF/ELSE
Конструкция if является одной из наиболее важных во многих языках программирования,
в том числе и PHP. Она предоставляет возможность условного выполнения фрагментов кода. Часто необходимо выполнить одно выражение, если определенное условие верно, и другое выражение, если условие не верно. Именно для этого else и используется. else расширяет оператор if, чтобы выполнить выражение, в случае если условие в операторе if равно FALSE.
Слайд 210IF/ELSEIF/ELSE
Конструкция elseif, как ее имя и говорит есть сочетание if и
else. Аналогично else, она расширяет оператор if для выполнения различных выражений в случае, когда условие начального оператора if эквивалентно FALSE. Однако, в отличии от else, выполнение альтернативного выражения произойдет только тогда, когда условие оператора elseif будет являться равным TRUE.
Слайд 211While
Смысл выражения while очень прост. Оно указывает PHP выполнять вложенные выражения
повторно до тех пор, пока выражение в самом while является TRUE. Значение выражения expr проверяется каждый раз перед началом цикла, поэтому даже если значение выражения изменится в процессе выполнения вложенных выражений в цикле, выполнение не прекратится до конца итерации (каждый раз, когда PHP выполняет выражения в цикле - это одна итерация). В том случае, если выражение while равно FALSE с самого начала, вложенные выражения ни разу не будут выполнены.
Слайд 212do-while
Цикл do-while очень похож на цикл while, с тем отличием, что
истинность выражения проверяется в конце итерации, а не в начале. Главное отличие от обычного цикла while в том, что первая итерация цикла do-while гарантированно выполнится (истинность выражения проверяется в конце итерации), тогда как она может не выполниться в обычном цикле while (истинность выражения которого проверяется в начале выполнения каждой итерации, и если изначально имеет значение FALSE, то выполнение цикла будет прервано сразу).
Слайд 213for
Цикл for самый сложный цикл в PHP. Он ведет себя
так же как его аналог в языке C. Синтаксис цикла for следующий: for (expr1; expr2; expr3) statement Первое выражение (expr1) всегда вычисляется (выполняется) только один раз в начале цикла. В начале каждой итерации оценивается выражение expr2. Если оно принимает значение TRUE, то цикл продолжается, и вложенные операторы будут выполнены. Если оно принимает значение FALSE, выполнение цикла заканчивается. В конце каждой итерации выражение expr3 вычисляется (выполняется ). Каждое из выражений может быть пустым или содержать несколько выражений, разделенных запятыми. В expr2 все выражения, разделенные запятыми, вычисляются, но результат берется из последнего. Если выражение expr2 отсутствует, это означает, что цикл будет выполняться бесконечно. (PHP неявно воспринимает это значение как TRUE, так же, как в языке C). Это может быть не столь бесполезно, сколь вы могли подумать, так как часто необходимо прервать цикл, используя условный оператор break вместо использования выражения в цикле for, которое принимает истинное значение.
Слайд 214Массивы
На самом деле массив в PHP - это упорядоченное отображение,
которое устанавливает соответствие между значением и ключом. Этот тип оптимизирован в нескольких направлениях, поэтому вы можете использовать его как собственно массив, список (вектор), хэш-таблицу (являющуюся реализацией карты), словарь, коллекцию, стэк, очередь и, возможно, что-то еще. Так как значением массива может быть другой массив PHP, можно также создавать деревья и многомерные массивы.
Слайд 215Массивы
Массивы в PHP могут содержать ключи типов integerМассивы в PHP
могут содержать ключи типов integer и string одновременно, так как PHP не делает различия между индексированными и ассоциативными массивами. Параметр key является необязательным. Если он не указан, PHP будет использовать предыдущее наибольшее значение ключа типа integer, увеличенное на 1.
Слайд 216foreach
Конструкция foreach предоставляет простой способ перебора массивов. Foreach работает только
с массивами и объектами, и будет генерировать ошибку при попытке использования с переменными других типов или неинициализированными переменными.Существует два вида синтаксиса: foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
Первый цикл перебирает массив, задаваемый с помощью array_expression. На каждой итерации значение текущего элемента присваивается переменной $value и внутренний указатель массива увеличивается на единицу (таким образом, на следующей итерации цикла работа будет происходить со следующим элементом). Второй цикл будет дополнительно соотносить ключ текущего элемента с переменной $key на каждой итерации.
Слайд 217Некоторые простые функции для работы с массивами
in_array — Проверяет, присутствует ли
в массиве значение array_keys — Возвращает все или некоторое подмножество ключей массива
array_pop — Извлекает последний элемент массива
array_push — Добавляет один или несколько элементов в конец массива
sort — Сортирует массив
count — Подсчитывает количество элементов массива или что-то в объекте
Слайд 218switch
Оператор switch подобен серии операторов IF с одинаковым условием. Во многих
случаях вам может понадобиться сравнивать одну и ту же переменную (или выражение) с множеством различных значений, и выполнять различные участки кода в зависимости от того, какое значение принимает эта переменная (или выражение). Это именно тот случай, для которого удобен оператор switch.
Слайд 219break
break прерывает выполнение текущей структуры for, foreach, while, do-while или
switch. break принимает необязательный числовой аргумент, который сообщает ему выполнение какого количества вложенных структур необходимо прервать. Значение по умолчанию 1, только ближайшая структура будет прервана.
Слайд 220continue
continue используется внутри циклических структур для пропуска оставшейся части текущей
итерации цикла и, при соблюдении условий, начала следующей итерации. continue принимает необязательный числовой аргумент, который указывает на скольких уровнях вложенных циклов будет пропущена оставшаяся часть итерации. Значением по умолчанию является 1, при которой пропускается оставшаяся часть текущего цикла.
Слайд 221include
Выражение include включает и выполняет указанный файл. Файлы включаются исходя из
пути указанного файла, или, если путь не указан, используется путь, указанный в директиве include_path. Если файл не найден в include_path, include попытается проверить директорию, в которой находится текущий включающий скрипт и текущую рабочую директорию перед тем, как выдать ошибку. Конструкция include выдаст warning, если не сможет найти файл; поведение отлично от require, который выдаст фатальную ошибку.
Слайд 222include_once
Выражение include_once включает и выполняет указанный файл во время выполнения скрипта.
Его поведение идентично выражению include, с той лишь разницей, что если код из файла уже один раз был включен, он не будет включен и выполнен повторно и вернёт TRUE. Как видно из имени, он включит файл только один раз (include once). include_once может использоваться в тех случаях, когда один и тот же файл может быть включен и выполнен более одного раза во время выполнения скрипта, в данном случае это поможет избежать проблем с переопределением функций, переменных и т.д.
Слайд 223require
require идентично include за исключением того, что при ошибке оно также
выдаст фатальную ошибку уровня E_COMPILE_ERROR. Другими словами, она остановит выполнение скрипта, тогда как include только выдала бы предупреждение E_WARNING, которое позволило бы скрипту продолжить выполнение. require_once
Выражение require_once идентично require за исключением того, что PHP проверит, включался ли уже данный файл, и, если да, не будет включать его еще раз.
Слайд 224Файловая система
Проверка существования файлов
file_exists is_file Открытие и закрытие файлов - r только
чтение. Указатель в начало - r+ чтение и запись. Указатель в начало - w только запись. Указатель в начало содержимое файла уничтожается - w+ чтение и запись. Указатель в начало содержимое файла уничтожается - a только запись. Указатель в конец - a+ чтение и запись. Указатель в конец - имя локального файла - php(стандартный поток I/O) - http(подключение http к серверу) - ftp(подключение ftp к серверу)
Слайд 225Файловая система
Запись в файл
fwrite is_writeable (существует и разрешена запись) Чтение из файла fread is_readable (существует и разрешено чтение)
Слайд 226Базы данных нет да нет да Соединение с сервером mysql неудача Выбор базы данных сервера mysql неудача Обработка запросов
к выбраной базе Закрыть соединение с сервером БД
ошибка
ошибка
SQL SELECT UPDATE INSERT DELETE
mycql_connect( )
mysql_select_db( )
mysql_query( ) mysql_affected_rows( ) mysql_num_rows( ) mysql_result( ) mysql_fetch_row( )
mysql_close( )
Слайд 227Расширения для работы с базами данных
Этот простой пример показывает, как соединиться,
выбрать бд, выполнить запрос, полчить количество записей, распечатать результат и отсоединиться.
Слайд 228Расширения для работы с базами данных
Расширение mysqli предоставляет двойной интерфейс программисту.
Поддерживаются как процедурная, так и объектно-ориентированная парадигмы программирования. Пользователи, переходящие со старого mysql расширения, возможно, предпочтут процедурный интерфейс. Он весьма схож с интерфейсом старого расширения, и во многих случаях функции отличаются только префиксом в имени. Некоторые mysqli функции принимают дескриптор соединения первым аргументом, в отличие от соответствующих им функций старого расширения, которые принимают его в качестве последнего необязательного аргумента.
Слайд 229Расширения для работы с базами данных
В дополнение к процедурному пользователи могут
использовать объектно-ориентированный интерфейс. Документация заточена именно под объектный интерфейс. Объектно-ориентированный интерфейс предлагает функции сгруппированные по цели их применения, что облегчает их поиск и освоение. Тем не менее, в практических примерах к функциям приводится код для обеих парадигм. Каких-либо принципиальных отличий в производительности между интерфейсами нет. Пользователи вольны в выборе интерфейса, основываясь на личных предпочтениях.
Слайд 230Источники информации по РНР
php.net – Руководство по РНР от авторов языка
программирования РНР php.su – Изучение основ языка, уроки PHP, справочник функций и учебники. codecademy.com/learn/php – Практические занятия в интерактивном режиме. laracasts.com – Агрегатор видео-информации про РНР и фреймворк Laravel github.com – Куча кода w3schools.com/php – Текстовые уроки от первоисточника стандартов W3 php-fig.org/psr/psr-2 – Стандарты кода make.wordpress.org/core/handbook/best-practices/coding-standards/php – Стандарт кода по WordPress
Слайд 231Usability
Категории Проблема первой категории, которая утратила первоначальную актуальность. Подобных ошибок при дизайне
сайта желательно избегать, но их присутствие не приведет к краху сайта. Проблема второй категории и средней важности. При создании сайтов крайне желательно избегать таких проблем, но они больше не имеют первоочередного значения. Проблема третей категории. Остается весьма актуальной. Очень важно, чтобы дизайнеры продолжали уделять ей самое пристальное внимание.
Обратная связь
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть
Что такое ThePresentation.ru?
Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.
Для правообладателей
|