1. Рабочие инструменты Самое первое, с чем вы сталкиваетесь в начале любого дела – это определенный инструментарий, специфичный для данной конкретной области. В случае с веб-разработкой это определенный набор программ, который позволит вам работать с кодом, отлаживать его и создавать сайты на своем компьютере. В уроках этого блока вы узнаете, что нам потребуется для работы с PHP и как организовать свою рабочую среду.
•
Программы для работы • Какие программы понадобятся нам для работы;
• На что обратить внимание при выборе редактора кода;
• Как получить отличный PHP-редактор почти даром;
• Что такое Denwer (Денвер).
•
Настройка кодировки в редакторах кода • Что такое кодировки;
• Зачем они нужны;
• Как настроить верную кодировку в редакторе кода.
•
Установка Денвера • Где скачать "Джентльменский набор веб-разработчика";
• Как установить Денвер;
• На что обратить внимание в процессе установки;
• Какую полезную информацию после установки следует запомнить.
•
Основы работы с Денвером • Как запустить локальный сервер;
• Как можно обращаться к главной странице Денвера;
• Проверяем работоспособность хоста, созданного в Денвере по умолчанию;
• Как создавать собственные сайты на локальном компьютере;
• На что нужно обратить внимание, чтобы новый хост вступил в силу;
• Какой файл ищет сервер при обращении к сайту;
• Почему для имен хостов удобнее использовать имена, которые заведомо не могут совпасть с именами реальных доменов;
• Каков механизм работы локального сервера и как можно "обмануть" свой компьютер;
• Как работает файл hosts;
• Как поменять кодировку веб-сервера Apache в Денвере.
•
Создание хоста в Денвере и проекта в phpDesigner • Как создать проект в программе phpDesigner;
• Как настроить свои собственные шаблоны для создаваемых файлов;
• Для чего нужен файл .htaccess.
2. Основные понятия и конструкции языка PHP Следующий шаг – это изучение основных понятий и терминов, принятых в языке PHP. В уроках этого блока вы узнаете самые важные фундаментальные моменты, касающиеся работы языка PHP и PHP-сайтов. Кроме того, в этом блоке разберем ряд важнейших конструкций данного языка.
•
Как работает PHP и первое приложение • Почему нельзя писать PHP-код внутри HTML-файлов;
• Как вывести на экран информацию средствами PHP;
• Какова принципиальная разница между выводом информации в HTML-файле и выводом ее с помощью языка PHP;
• Почему в исходном коде веб-страницы мы не видим PHP-кода.
•
Двойные и одинарные кавычки. Понятие переменной • В чем смысл двойных и одинарных кавычек в PHP;
• Каковы принципиальные различия в их работе;
• Что такое переменная и в чем ее смысл;
• Как задаются значения переменных;
• Как выводить на экран значения переменных;
• Как выводить HTML-разметку средствами языка PHP;
• Что такое экранирование и когда оно используется;
• Что такое "ошибка разбора строки" (parse error).
•
Правила именования переменных и операция ссылки • Какими правилами и принципами нужно руководствоваться при задании имен переменных;
• Что такое "операция ссылки";
• Как работает механизм присвоения значения переменной.
•
Использование комментариев • Что такое комментарии и для чего они нужны;
• Какие виды комментариев существуют;
• Как вставлять комментарии с помощью phpDesigner.
• Типы данных - строки и числа • Что такое тип данных;
• Как работать с основными математическим операциями;
• Как работает операция "сложения" строк (конкатенация);
• Как можно выводить значения переменных внутри двойных кавычек;
• Числа в системах счисления помимо десятичной;
• Что такое числа с плавающей точкой.
• Сокращенная форма записи некоторых операций • Как применять сокращенные формы записи для арифметических операций;
• Какие сокращенные формы записи можно использовать при работе со строками;
• В чем суть операций префиксного и суффиксного инкремента и декремента.
•
Конструкция if-else; тип boolean; логические операторы • Как работать с логическими условиями "если, то";
• В чем смысл данных типа boolean и как они применяются на практике;
• Как произвести остановку выполнения PHP-сценария в любой момент;
• Как работают основные логические операторы в PHP.
•
Равенство и идентичность; приоритетность; тернарный оператор • В чем отличие понятий "равенство" и "строгое равенство";
• Почему важно учитывать приоритетность выполнения операторов;
• Как можно повысить приоритет выполнения того или иного оператора;
• Что такое тернарный оператор и когда следует его использовать.
•
Вложенные конструкции if-else и конструкция elseif • Как использовать конструкции if-else, вложенные одна в другую;
• В чем смысл конструкции elseif;
• Как проверить на истинность несколько условий подряд;
• Как работает конструкция elseif.
•
Конструкция switch-case • Для чего нужна конструкция switch-case;
• В каких случаях удобнее всего использовать данную конструкцию;
• Какие особенности конструкции switch-case важно учитывать при работе.
3. Циклы и массивы Циклы и массивы – это те составляющие PHP, которые позволяют нам работать с большими объемами информации. Массивы позволяют нам формировать нужную нам структуру данных и удобно ими оперировать, в то время как циклы дают нам возможность выводить на страницы сайта информацию одного типа: статьи, комментарии, фотографии и т.д. В уроках этого блока разберем с вами виды циклов и массивов, а также их совместное использование.
•
Циклы while и do while • Где применяются циклы при создании сайтов;
• Каков синтаксис циклов
while и
do while;
• О каком важном отличии между этими циклами обязательно нужно помнить в процессе работы.
•
Цикл for • Каков синтаксис цикла
for;
• Какова принципиальная схема его работы;
• Что такое итерация.
•
Дополнения по циклам • Как принудительно совершить выход из цикла;
• Оператор
break и особенности его работы;
• Оператор
continue для пропуска оставшейся части текущей итерации цикла;
• Что такое бесконечные циклы и как избежать их появления.
•
Простой массив • Что такое массив и как он организован;
• Понятие индексов и элементов массива;
• Как объявить массив и наполнить его данными;
• По какому принципу происходит автоматическое присвоение индексов элементам массива;
• Какие способы создания массива существуют;
• Используем цикл для прохода по элементам массива.
•
Ассоциативный массив • В чем отличие ассоциативного массива от простого;
• Способы создания ассоциативных массивов;
• Особенности вывода на экран элементов ассоциативного массива.
•
Цикл foreach • Почему цикл
for не всегда удобен для работы с ассоциативными массивами;
• В чем преимущество цикла
foreach для работы с ними;
• Как можно обратиться не только к элементам ассоциативного массива, но и к его ключам.
•
Многомерный массив • В чем смысл многомерного массива и что он из себя представляет;
• Как правильно задавать структуру многомерного массива;
• Как происходит обращение к элементам многомерного массива;
• Для чего нужна распечатка массива и как ее выполнить;
• Какие есть способы для создания многомерных массивов.
4. Введение в функции Функцией называют независимый блок кода, который выполняет определенную задачу. Это очень важная возможность, которая позволяет писать код наиболее рационально. В процессе работы с PHP вы вскоре обратите внимание на то, что вам требуется использовать один и тот же блок кода многократно, в разных местах приложения.
Разумеется, можно просто копировать этот блок кода и вставлять его в тех местах, где он необходим, однако такой подход неверен, т.к. несет в себе множество неудобств при дальнейшей поддержке сайта. Так вот, чтобы избежать подобных неудобств и дублирования кода, нужно активно использовать функции.
• Понятие, область применения и вызов функции • Что такое функции и в чем преимущества их использования;
• Что такое вызов функции и как его осуществить;
• Что такое параметр и как его передать в функцию;
• Что такое прототип функции и как им пользоваться;
• Обязательные и необязательные параметры функции и порядок их следования;
• Что такое значения по умолчанию для параметров функции.
•
Именование функций и создание собственных функций • Какие существуют правила при задании имен функций;
• Как создавать свои собственные функции;
• Какой альтернативный способ существует для вызова функций;
• Как произвести многократный вызов одной и той же функции;
• Как дать понять интерпретатору PHP, что определенные параметры функции должны быть необязательными;
• Как происходит переопределение значений необязательных параметров при вызове функции.
•
Ключевое слово return и возврат значений из функции • Для чего нужно ключевое слово return;
• В чем смысл возвращения значения функцией;
• Для чего присваивать результат выполнения функции переменной;
• Когда функции возвращают значения TRUE или FALSE.
•
Область видимости переменных • Что такое область видимости переменных;
• В чем отличия локальных и глобальных переменных;
• Как ведут себя локальные переменные при повторных вызовах функции, в рамках которой они заданы;
• Для чего нужны статические переменные и как их создать;
• Как ведут себя статические переменные при повторных вызовах функции, в рамках которой они заданы;
• Как можно работать с глобальными переменными внутри функций.
•
Передача параметров по ссылке и по значению • Как работает стандартный механизм передачи параметров функции (по значению);
• Что такое передача параметра по ссылке;
• Каково принципиальное отличие между двумя способами передачи параметров.
•
Функции для работы с типами переменных • Как узнать тип любой переменной;
• Как можно принудительно привести переменную к определенному типу;
• Для чего нужен псевдотип данных mixed;
• Как проверить, содержит ли переменная данные конкретного типа.
•
Функции проверки состояния переменных • Как можно проверить существование конкретной переменной;
• Каким образом можно удалять переменные;
• Как проверить существование переменной и наличие у нее непустого ненулевого значения;
• Какие переменные считаются в PHP пустыми и несуществующими.
5. Функции работы с массивами Как уже было упомянуто выше, массивы играют очень важную роль при разработке на PHP - они используются повсеместно при создании сайтов. Именно поэтому нужно уметь манипулировать данными, содержащимися в массивах. Среди частых задач можно отметить такие, как: подсчет количества элементов массива, поиск уникальных значений, различные виды сортировки, перемешивание элементов массива и т.д. Все эти и многие другие моменты вы освоите в рамках данного блока курса.
•
Функции для работы с массивами: count, array_unique, extract • Как узнать количество элементов, содержащихся в массиве;
• Как нам получить только уникальные элементы массива;
• Как преобразовать ключи массива в отдельные переменные.
• Функции для работы с массивами: in_array, range • Каким образом можно проверить существование в массиве элемента с определенным значением;
• Какой важный момент следует учитывать при такой проверке;
• Как можно проверить существование в составе массива другого массива;
• Как можно сохранить в массив определенную последовательность цифр или букв (с заданным шагом).
•
Сортировка массивов: sort, asort, ksort • Упорядочивание массива в алфавитном и цифровом порядке;
• Какие особенности работы функций сортировки нужно иметь в виду;
• Как обеспечить сортировку массива с совместным сохранением ключей и значений;
• Как произвести сортировку массива по его ключам.
•
Сортировка массивов: rsort, arsort, krsort • Как произвести обратную сортировку массива в алфавитном и цифровом порядке;
• Как обеспечить обратную сортировку массива с совместным сохранением ключей и значений;
• Как произвести обратную сортировку массива по его ключам.
•
Сортировка массивов: shuffle, array_reverse • Какую функцию нужно использовать для того, чтобы перемешать элементы массива в произвольном порядке;
• Как можно вывести элементы массива в обратном порядке.
6. Функции работы со строками Функции для работы со строками занимают очень важное место среди всех PHP-функций, т.к. наша жизнь очень плотно связана с текстовой информацией. Эти функции очень полезны для решения многих прикладных задач. Часто нужно, например, очистить какие-то данные, которые вводит пользователь, либо как-то их переформатировать.
Особенно это актуально, если эти данные предназначены для сохранения в базу данных. Также такие функции используются для реализации поиска по сайту и т.д. Вариантов использования таких функций достаточно много, поэтому очень важно уметь с ними работать.
• Работа со строками: введение • Какое место занимают функции для работы со строками в языке PHP;
• Какие задачи можно решать с помощью функций работы со строками;
• Какие есть трудности при использовании строковых функций по отношению к строкам в кириллической кодировке;
• Какая библиотека позволяет решить эти трудности;
• Что такое однобайтовые и многобайтовые кодировки;
• В чем основное ограничение однобайтовых кодировок;
•
Функции обрезки строк: trim, ltrim, rtrim • Для чего может понадобиться обрезка строк;
• Чем может быть опасно игнорирование функций обрезки строк;
• Какие функции можно использовать для очистки строк от лишних пробельных символов, символов табуляции, переноса строки и т.д.
•
Функция nl2br: преобразование новой строки в тэг переноса • Для чего может быть полезно преобразование новой строки в тэг переноса строки;
• Как работает функция
nl2br;
• Какие особенности ее "поведения" нужно знать.
•
Функции изменения регистра символов в строке: mb_strtoupper, mb_strlower, mb_convert_case • Для чего нужно менять регистр символов в обрабатываемых строках;
• Как привести строковые данные к верхнему и нижнему регистру;
• Как работает универсальная функция, меняющая как регистр, так и производящая капитализацию первой буквы каждого слова в строке.
•
Функции printf и sprintf: работа с форматированными данными • В чем смысл использования функций работы с форматированными данными;
• Что такое код форматирования и для чего он нужен;
• Как можно использовать функции форматирования данных для одновременной обработки ряда переменных;
• Каковы отличия функций
printf и
sprintf.
• Функции explode и implode • Как можно разделить строки на части по заданному нами правилу;
• Как можно объединить две строки в одну, соединв их по заданному нами правилу;
• В каких ситуациях могут быть полезны функции explode и implode.
•
Доступ к подстроке и длина строки: функции mb_substr и mb_strlen • Для чего удобно использовать функции доступа к подстрокам в рамках других строк;
• Как использовать фукнцию
mb_substr для извлечения из строки нужной нам части;
• Как можно подсчитать количество символов в строке и когда это нужно.
•
Поиск подстрок в строках: mb_strstr, mb_stristr, mb_strrchr, mb_strrichr • Как найти первое вхождение подстроки в строку с учетом регистра символов;
• Как найти первое вхождение подстроки в строку без учета регистра символов (полезно при создании поиска по сайту);
• Как найти последнее вхождение подстроки в строку с учетом регистра символов;
• Как найти последнее вхождение подстроки в строку без учета регистра символов.
•
Определение позиции подстроки: mb_strpos, mb_stripos, mb_strrpos, mb_strripos • Как найти позицию первого вхождения построки в другую строку с учетом регистра символов;
• Какие существуют возможности для более детальной настройки поиска вхождения подстроки в строку;
• Как найти позицию первого вхождения построки в другую строку без учета регистра символов;
• Как найти позицию последнего вхождения подстроки в строку с учетом регистра символов;
• Как найти позицию последнего вхождения подстроки в строку без учета регистра символов;
• Какую важную особенность функций поиска нужно учитывать, чтобы избежать ошибок.
•
Поиск и замена: функция str_replace • Как найти все вхождения подстроки в строку и произвести их замену на нужный нам текст;
• Как узнать количество замен, которые были произведены;
• Как найти все вхождения массива в другой массив и произвести замену этих вхождений другим массивом.
7. HTTP-запросы, параметры URL и HTML-формы HTTP-запросы – тот самый фундамент, на котором построен обмен данными между браузером и веб-сервером. В уроках этого блока разберем важнейшие типы HTTP-запросов, которые применяются постоянно. Кроме этого, вы научитесь работать с передачей параметров и HTML-формами.
•
Передача значений переменных методом GET • Для чего нужно передавать значения переменных;
• Как передаются значения переменных с помощью адресной строки;
• Что такое суперглобальный массив $_GET;
• Как создать динамически формируемый контент страницы в зависимости от передаваемого методом GET параметра;
• Как передавать несколько параметров методом GET и как получать их значения.
•
Метод POST и html-формы. Часть 1 • В чем отличие методов GET и POST при передаче данных;
• Когда применяется метод POST;
• Что нужно указать в форме, чтобы данные, введенные в нее, отправлялись методом POST;
• Как указать в форме, куда будут переданы данные на обработку;
• Как задать значения по умолчанию для полей формы.
•
Метод POST и html-формы. Часть 2 • Как создать простой калькулятор на PHP, используя возможности передачи данных методом POST;
• Как сделать так, чтобы данные, передаваемые из формы, обрабатывались тем же файлом, в котором находится форма;
• Какие функции нам понадобятся для работы нашего калькулятора и как они работают.
•
Глобальные массивы $_REQUEST и $_SERVER • Что такое глобальный массив
$_REQUEST и какая информация в нем хранится;
• Для чего предназначен глобальный массив
$_SERVER;
• Какие данные можно найти в этом массиве
• Как узнать IP-адрес посетителя, его браузер, страницу, с которой был совершен переход и т.п.;
• По какому механизму работают партнерские программы для отслеживания того, от какого партнера и откуда пришел человек.
8. Управление сеансами (cookies и сессии) Очень важной особенностью веб-приложения может являться его способность «помнить» вас, как посетителя. Уверен, вы часто с этим сталкивались, когда регистрировались на каком-либо сайте. При повторных посещениях вам уже не нужно заново указывать ваши данные, т.к. сайт вас «узнает».
Похожий механизм используется и, например, при создании корзины в интернет-магазинах, когда информация о вашем заказе на какое-то время запоминается сайтом и сохраняется вплоть до окончательного совершения заказа.
В рамках данного блока курса вы узнаете, как можно управлять сеансами в PHP, используя сессии и так называемые cookies.
•
Работа с cookies • Что такое cookies и для чего они нужны;
• Как можно "запомнить" посетителя сайта с помощью cookies;
• Когда нужно устанавливать cookies;
• Как работает механизм cookies;
• Как установить куку;
• Как задавать "срок жизни" кук;
• Каким образом производится удаление кук.
•
Работа с сессиями • Что такое сессия;
• Какова область применения сессий в веб-разработке;
• Где может храниться идентификатор сессии;
• Как запустить механизм сессий;
• Как получить доступ к данным, хранящимся в сессии;
• Как уничтожить данные в сессии.
•
Авторизация на сайте • Как создать простую систему авторизации пользователей на сайте;
• Как создать закрытые страницы на сайте, доступные только для авторизованных пользователей;
• Какой механизм лежит в основе "узнавания" пользователя при его повторном визите на сайт;
• Какое значение передается из отмеченного чекбокса.
9. Дополнительные моменты В рамках этого блока собраны уроки, которые сложно отнести к каким-то определенным группам. В основном, они посвящены изучению дополнительных аспектов языка PHP: понятий, языковых конструкций и некоторых полезных функций. Многие из них будут очень полезны для вас и найдут свое применение на практике.
•
Операторы include и require • Для чего используются операторы include и require;
• В чем отличия данных конструкций;
• Какие разновидности этих конструкций существуют;
• Когда есть смысл использовать эти разновидности.
•
Альтернативный синтаксис управляющих структур • Какие существуют альтернативные формы записи для управляющих структур;
• Для каких структр есть альтернативный синтаксис;
• В чем преимущества использования альтернативного синтаксиса;
• Почему наиболее удобно использовать альтернативный синтаксис при работе с циклами.
•
Константы и переменные переменных • В чем смысл констант и для чего удобно их применять;
• Как объявить константу в PHP;
• В чем смысл переменных переменных;
• Как можно динамически менять имена переменных с помощью переменных переменных.
•
Использование HEREDOC-синтаксиса • Каков смысл HEREDOC-синтаксиса;
• Когда удобно его использование;
• Какие важные особенности его работы нужно учитывать.
•
Функция phpinfo и работа с ini-файлами • Для чего нужна функция phpinfo;
• Какую информацию можно получить с ее помощью;
• Как можно создавать свои собственные конфигурационные файлы и использовать их;
• Как можно использовать в своем приложении несколько языков для локализации интерфейса.
•
Функция date - вывод даты и времени • Как функционирует функция date;
• Какие коды форматирования можно использовать при выводе даты;
• Как можно использовать русскоязычные названия дней недели и месяцев при форматировании даты.
•
Создание функции транслитерации строк • Что такое транслитерация строк;
• Когда транслитерация символов может быть полезна;
• Какая функция PHP поможет нам написать функцию транслитерации.
•
Отправка почты. Часть 1 • Какие файлы нам понадобятся для реализации функции отправки почты;
• Куда отправляются письма при работе на локальном компьютере;
• Изучаем внешние моменты функционирования уже готового скрипта отправки почты.
•
Отправка почты. Часть 2 • Какова логика работы скрипта формы обратной связи;
• Почему удобно вынести настройки и часть обработок данных в отдельный конфигурационный файл;
• Какие функции мы будем использовать для очистки вводимых пользователем данных;
• Как можно передать функции mail дополнительные параметры при отправке письма (передача заголовков);
• Как произвести переадресацию человека после отправки письма.
Бонусы •
Работа с файлами и папками Работа с файлами занимает, хоть и не центральное, однако очень важное место среди возможностей языка PHP.
С помощью функций работы с файлами можно создавать новые файлы, редактировать их, перезаписывать их содержимое, перемещать, узнавать размер, проверять факт существования того или иного файла и т.д.
Помимо этого, в уроках этого бонусного блока автор покажет вам, как работать с каталогами и управлять правами доступа к файлам и папкам.
•
Основы регулярных выражений Что такое регулярные выражения? Это инструмент для работы с текстом. Причем инструмент более мощный и гибкий, чем функции для работы со строками. Сутью механизма регулярных выражений является то, что они позволяют задать шаблон для нечеткого поиска по тексту.
Например, если перед вами стоит задача найти в тексте определенное слово, то с этой задачей хорошо справляются и обычные функции работы со строками.
Однако если вам нужно найти "то, не знаю что", и вы лишь приблизительно можете сказать, как это должно выглядеть - то здесь без регулярных выражений просто не обойтись.
Грамотное использование регулярных выражений позволит вам работать с информацией поистине виртуозно.
•
Подборка из 160 шаблонов для сайтов Очевидно, что далеко не все являются классными дизайнерами и умеют создавать дизайны для сайтов. Но в то же время хочется, чтобы сайт был красивым и аккуратным.
Именно поэтому автор подготовил для вас подборку из 160 шаблонов, на основе которых вы можете создавать новые сайты.
Шаблоны очень разнообразны и подойдут для создания сайтов самых различных тематик - от строгих сайтов-визиток для бизнеса и заканчивая сайтами по садоводству и новостными порталами.
Оценить ценность данного бонуса сложно, однако представьте себе, сколько времени вы сэкономите на поиске этих шаблонов или денег на покупке платных шаблонов по 15-25$ за штуку.