Основен урок по PHP8+
Основи
Въведение в езика PHP
Начало на работа
Изпълнение на код PHP
Проблем с кодировките
Извеждане на грешки в PHP
Пълен код за стартиране на PHP
Подобрен код за стартиране
Обзор на началните PHP команди
Коментари в PHP
Коментари в учебника
Извеждане на стойности на променливи (Dumping)
Функции в PHP
Променливи
Използване на променливи
Промяна на стойностите на променливи
Математически операции с числа
Математически операции с променливи
Приоритет на математическите операции
Еднакъв приоритет
Групиращи скоби
Нюанси на групирането
Дроби
Отрицателни числа
Остатък от деление
Повдигане на степен
Приоритет на повдигането на степен
Низове
Съединяване на низове
Интервали при съединяване на низове
Дължина на низ
Проблем с кирилицата
Тагове
Атрибути на тагове
Булеви стойности
Стойност null
Автоматично преобразуване на типове
Автоматично преобразуване към низ
Нюанси на преобразуването към низ
Преобразуване към число
Преобразуване към дроб
Преобразуване на дроб към цяло число
Преобразуване на число към низ
Символи на низ
Цифри в низ
Достъп до цифрите на число
Нюанси на работа с операцията за присвояване
Съкратени операции
Инкрементация
Префиксен и постфиксен тип
Практика в търсенето на грешки
Практика с операции
Практика с формули
Масиви
Въведение в масивите
Извеждане на съдържанието на масив
Отделен елемент на масив
Асоциативни масиви
Трикове с ключове
Ред на елементите
Дължина на масив
Промяна на елементи
Пренаписване на елементи на масив
Инкрементиране на елементи
Попълване на масиви
Явно задаване на ключове
Ключове от променливи
Практика в намирането на грешки
Условия
Конструкция if-else
Оператори за сравнение (повече и по-малко)
Проверка за равенство
Проверка за неравенство
Сравнение на променливи
Типове данни и конструкция if-else
Числа в кавички
Равенство по стойност и тип
Неравенство по стойност и тип
Нюанси при сравняване на типове данни
Сложни условия в if-else
Логическо И
Логическо ИЛИ
Приоритет на операциите за сравнение
Групиране на условия
Инвертиране на твърдения
Конструкция if-else и булеви стойности
Нестрого сравнение на логически стойности
Съкратен if
Нюанс на съкратените операции
Команда isset
Потискане на предупрежденията
Проверка на елементи от масив
Команда empty
Незадължителност на командата else
Незадължителност на фигурните скоби
Проблем с незадължителността на скобите
Комбинации if-else
Конструкция elseif
Вложени if
Конструкция switch
Незадължителност на default
Конструкция match
Незадължителност на break
Тернарен оператор
Оператор за сливане с null
Вериги от оператори за сливане с null
Логически операции
Определяне на част от час
Проверка на дължината на низове и масиви
Проверка на символ от низ
Проверка на остатъка от деление
Практика за намиране на грешки
Практика if else
Цикли
Въведение
Цикъл foreach
Цикъл foreach с ключове
Цикъл while
Цикъл for
Условия в цикли
Накопяване на сума от числа
Накопяване на сума от елементи
Формиране на низове в цикъл
Незадължителност на фигурните скоби
Проблем с незадължителността на скобите
Инструкция break
Инструкция continue
Работа с флагове
Вложени цикли
Цикъл for за масиви
Запълване на масиви в цикъл
Промяна на масиви в цикъл
Съвети за писане на код
Практика за намиране на грешки
Практика с цикли
Многомерност
Въведение
Тримерен масив
Асоциативни масиви
Произволни масиви
Обхождане на многомерни масиви
Обхождане на тримерен масив
Работа с ключове
Попълване на многомерни масиви
Попълване с числа по ред
Масив от асоциативни масиви
Конвертиране на многомерни масиви
Математически функции
Стрингови функции
Дължина на стринг
Регистър на символите
Изрязване на стрингове
Проверка на стрингове
Търсене в стрингове
Разделяне на стрингове
Почистване на краищата на стринг
Извеждане на стринг с вмъкване
Форматиране на представянето на числа
Обръщане на стринг
Запълване на стринг
Работа с тагове
Кодове на символите
Броене на подстрингове
Части от стринг
Функции за масиви
Търсене в масиви
Крайни елементи
Разделяне на масиви
Сплисване на масиви
Диапазон в масив
Попълване на масиви
Сливане на масиви
Ключове-стойности
Обръщане
Замяна
Премахване на дублирания
Броене на елементи
Разделяне на подмасиви
Сортиране
Операции с множества
Случайност
Време
Работа с timestamp
Форматиране
Разбор на дати в свободен формат
Проверка на коректност
Часова зона
Промяна
Сравнение по низ
Сравнение на дата без година
Попадане на дата в интервал
Сравнение на timestamp
Потребителски функции
Въведение
Параметри на функцията
Няколко параметъра
Параметри-променливи
Незадължителни параметри
Инструкция return
Последователно извикване на функции
Тънко място на return
Цикъл и return
Приложение на return в цикли
Прием при работа с return
Флагове във функции
Логически оператори във функции
Съвети за функции
Практика върху намиране на грешки
Практикум върху функции
Обхват на видимост
Примитивни референции
Референции към масиви
Референции в foreach
Вътрешни променливи
Външни променливи
Едноименни променливи
Глобални променливи
Промяна на параметри
Параметри-референции
Рекурсия
Рекурсия
Пример с параметър
Сума на елементите на масив
Рекурсия и многомерни масиви
Сума на многомерен масив
Манипулации с елементи
Регулярни изрази
Въведение
Оператори за повторение
Групиращи скоби
Екраниране на специални символи
Списък със специални символи
Големи скоби
Ограничаване на алчността
Групи от символи
Набори от символи
Инвертиране на набори от символи
Особености на кирилицата
Специални символи вътре в набори
Групи от символи вътре в набори
Специални символи-изключения вътре в набори
Символът капачка вътре в набори
Особености на тирето вътре в набори
Начало и край на ред
Край или начало на дума
Команда 'или'
Ограничители
Екраниране на ограничители
Обратна наклонена черта
Проверка на низ
Автоматично тестване на регулярни изрази
Проверка на целия низ
Групи при търсене
Търсене на всички съвпадения
Всички съвпадения в групи
Промяна на поведението при търсене
Незапазващи скоби
Групи при замяна
Групи в израз
Именувани групи
Именувани групи вътре в израз
Общ номер на групи
Преглед напред
Преглед назад
Замяна с callback функция
Модификатори
Игнориране на регистъра в регулярните изрази
Коментари в регулярен израз
Работа с Unicode в регулярни изрази
Промяна на алчността на регулярните изрази
Екраниране на обикновени символи в регулярни изрази
Няколко модификатора на регулярни изрази
Автоматично екраниране на специални символи
Филтриране на масив
Разделяне на низ в масив
Формиране на низове
Вмъкване на променливи
Вмъкване на елементи от масив
Вмъкване на елементи от асоциативни масиви
Цикъл и вмъкване на променливи
Вмъкване на елементи от масиви в цикъл
Вмъкване на елементи от многомерни масиви в цикъл
Генериране на тагове
Генериране на тагове с атрибути
Цикъл и генериране на тагове
Цикъл и генериране на тагове от масиви
Цикъл и генериране на тагове и атрибути
Цикъл и генериране на HTML таблици
Генериране на HTML таблица с помощта на един цикъл
Генериране на HTML таблица с помощта на два вложени цикъла
Вмъкване на PHP код в HTML
Кратка команда echo
Извеждане на променлива в HTML
Извеждане на елементи от масив в HTML
Условия и прекъсване на PHP код
Блок else при прекъсване на PHP код
Блок elseif при прекъсване на PHP код
Цикли и прекъсване на PHP код
Масив в цикъл при прекъсване на PHP код
Форми
Въведение в форми
Метод за изпращане на форма
Получаване на данни от форми
Получаване на данни от форми с метод GET
Получаване на данни от форми с метод POST
Обработка на форма в един файл
Скриване на форма след изпращане
Запазване на стойностите във формата
Запазване на стойност по подразбиране във формата
Съкратен код за запазване на стойности по подразбиране
Елемент textarea
Запазване на стойност в textarea след изпращане
Чекбокс
Нюанси при използването на чекбокси
Запазване на стойност в чекбокс
Радиобутони
Запазване на стойност в радиобутони
Селектори
Атрибут value в селектори
Запазване на стойност в селектори
GET заявки
GET заявки чрез връзки
Практикум
Сесии
Въведение в сесиите
Възможни проблеми
Използване на сесии на една страница
Изтриване на сесии
Завършване на цялата сесия
Сесии и форми
Записване на масиви в сесии
Бисквитки
Въведение в бисквитките
Проблем при задаване на бисквитки
Незабавно задаване на бисквитки
Брояч на презарежданията на страницата
Време на живот на бисквитката
Премахване на бисквитки
Незабавно премахване на бисквитки
Файлова система
Четене на файлове
Записване на файлове
Комбинация от операции
Относителни пътища
Абсолютни пътища
Предимства на абсолютния път
Абсолютни пътища към скрипта
Преименуване на файлове
Преместване на файлове
Копиране на файлове
Изтриване на файлове
Определяне на размера на файлове
Проверка за съществуване на файлове
Създаване на папки
Изтриване на папки
Преименуване на папки
Преместване на папки
Четене на съдържанието на папка
Различаване на папка от файл
Разбор на съдържанието на папка
Вмъкване на файлове
Разделяне на верстката на елементи
Записване на вмъкването в променлива
Включване на файлове
Еднократно включване на файлове
Записване на включването в променлива
Бази данни
Въведение в базите данни
PhpMyAdmin
Тестова таблица users
Подготвителни манипулации
Изпращане на заявки към базата данни
Търсене на грешки в базата данни
Тестване на работоспособността
Проблеми с кодировките
Пълен тестов код
Получаване на резултата
Получаване на резултата като масив
Формиране на масив в цикъл
Извличане на записи
Логически операции
Полета за извличане
Вмъкване на записи
Вмъкване на записи при липсващи колони
Актуализиране на записи
Изтриване на записи
Сортиране на записи
Ограничаване на количеството
Преброяване на количеството
Получаване на броя
Разширени заявки
Организация на БД
Свързване на таблици
Получаване на данни от свързани таблици
Верига от свързани таблици
Свързване чрез таблица за свързване
Родствени връзки
Няколко наследници
Двойна връзка
Практикум
Практика с БД
Тестова таблица users
Оформление на изхода
Изтриване на данни
Преглед на данни
Добавяне на данни
Редактиране на данни
Работа с HTTP
Учебник по HTTP
Метод на HTTP заявката
HTTP заглавки на заявката
Масив от заглавки на HTTP заявката
Заглавки на HTTP отговора
Проблем с заглавките на HTTP отговора
Проблем с include
Изпращане на стартиращия ред на HTTP отговора
Изпращане на статуса на HTTP отговора
Пренасочвания
Въведение в пренасочванията
Мгновено пренасочване
GET заявки и пренасочване
Самопренасочване с добавяне на параметри
Флаш съобщения
Масив от флаш съобщения
Запазване на форми
Съобщения за успешно изпращане
Пренасочване при валидиране на форма
Удостоверяване
Въведение
Оторизация
Сесии
Изход от сесия
Регистрация
Оторизация веднага след регистрация
Добавяне на id в сесията
Скриване на паролата
Проверка дали логинът е зает
Валидация
Хеширане
Добавяне на сол при регистрация
Добавяне на сол при оторизация
Функция password_hash
Профил
Акаунт
Смяна на паролата
Потвърждение на паролата
Изтриване на акаунт
Права
Регистрация с разделяне на права
Права и нормализация на базата данни