- Блог на php для самых маленьких
- Для кого эта публикация?
- Цель публикации
- Начнем-с
- Десерт
- Итого
- Как создать файл index php
- Что означает создание php файла «вручную»
- Что означает «создать php файл с помощью «php»«
- Создать файл php на компьютере
- Как создать файл php в блокноте
- Php создать файл на сервере
- Php создать файл на сервере видео
- Друзья!
- Php создать файл если не существует
- Пример создания файла php при нажатии на кнопку
- Сделать файл php при нажатии на кнопку с содержимым
Блог на php для самых маленьких
Привет, я php backend разработчик и по совместительству преподаю php в основном для детей и не только. Последний проект над которым я работал, был сайт votpusk.ru. Я не считаю себя гуру, тем не менее знаний у меня достаточно что бы направить на путь истинный начинающих php программистов.
Для кого эта публикация?
Эта публикация для кодеров которые освоили азы программирования, но испытывают трудности при написании своего первого сайта. Публикация будет полезна тем кто уже имеет базовые знания php и html, но на практике применить свои знания им трудно. Планируется целый цикл публикаций от простого к сложному.
Цель публикации
Основная цель данной публикации, начать написание блога на процедурном php и html. При этом используя минимальное количество функций с приближенной к реальному проекту архитектурой. Вместо базы данных будем использовать обычный txt файл с данными.
Начнем-с
Для начала нужно будет создать несколько папок и файлов как показано на скрине: (blog.com это корневая папка проекта у вас может быть другое название, остальное как на скрине).
Теперь когда файлы и папки созданы, давайте откроем файл index.php в браузере. Пропишем название нашего сайта и через слэш имя нужного файла у меня это будет выглядеть так: http://blog.com/index.php Запустив файл мы увидим белый экран так как в файле пока нет кода. Файл index.php запускается по умолчанию если мы не указываем название другого файла. Поэтому мы можем исправить нашу ссылку на http://blog.com и увидим точно такой же результат.
Файл index.php это единственная точка входа в наш проект. Мы всегда будем попадать на этот файл и в зависимости от условий подключим другие файлы с кодом нужных страниц.
Теперь нужно прикинуть какие страницы будут на нашем сайте. Изначально планируем «Главную», «Контакты», и собственно страницу со статьями. Так же нужно продумать возможность вывода статей по категориям.
Теперь откроем файл index.php в редакторе. Зная что мы попадаем на этот файл всегда как нам узнать когда нужно подключать файл с кодом главной страницы, а когда например страницы с контактами?
В php есть механизм позволяющий передавать значения из адресной строки в переменную $_GET которая является массивом (array). Теперь добавляя к http://blog.com/ строку типа ?c=contact&a=index мы получим в массиве $_GET два значения, которые запишем в переменные. Обратите внимание, что значения разделены знаком &. Почитать о $_GET
Теперь то что мы получили в переменной $controller будем считать именем подключаемого файла нужной страницы, но с условием что будем добавлять к имени строку ‘Controller’. Подключаемые файлы будем хранить в папке /controllers.
Создадим файл contactController.php для страницы «Контакты» в папке /controllers. Так же можем создать файлы и для главной (mainController.php), и для страницы со статьями (articlesController.php). Переменную $action пока не трогаем, она нам понадобиться позже.
Теперь хочу пояснить для чего нам значение в переменной $action. У нас есть пока что только одна страница для вывода всех статей. Но если вдруг нам понадобиться еще страница для вывода каждой статьи по отдельности, по нашей логике мы создадим два файла, что само собой не хорошо. Т.е. 100 файлов для 100 страниц и непонятно какой файл за что отвечает и для поиска нужного файла мы крутим колесико вечность. Как вариант мы можем все файлы которые относятся к статьям поместить в папку articles/ это бы помогло нам быстрее находить файлы с нужным кодом, но количество файлов это никак не уменьшит.
Решением данной ситуации я вижу поместив в наш файл articlesController.php две или более функции и вызывать их в зависимости от значения переменной $action. При этом предлагаю немного модифицировать имя функции добавив к нему параметр $_GET[‘c’]. По итогу файл articlesController.php будет выглядеть вот так:
Теперь давайте напишем код, который анализирует значения переменной $controller и подключает нужный нам файл(контроллер). А так же анализируя переменную $action вызывает нужную функцию. Договоримся что если $_GET[‘c’] содержит пустое значение в $controller по умолчанию у нас будет main, ну а $action — index. По итогу файл index.php будет выглядеть вот так: ( empty file_exists include_once function_exists )
/*Если в $_GET['c'] не пустое значение запишем в переменную $action */ if (! empty($_GET['a'])) < $action = $_GET['a']; >//Сформируем путь к нашему контролеру $controllerPath = "controllers/Controller.php"; //Сформируем название вызываемой функции $functionName = $controller . '_' . $action; //Если такой контролер существует подключим его инклудом if (file_exists($controllerPath)) < include_once $controllerPath; //Если такая функция существует вызовем её if (function_exists($functionName)) < $data = $functionName(); >>
Теперь перейдя по адресу http://blog.com/?c=contact&a=index мы подключим файл contactController.php и выполним функцию сontact_index().
Отлично хотел бы сказать я, но это еще не все. Обычно html разметку и php код следует размещать в разных файлах. Код отдельно, а разметку отдельно. А это значит что для каждой такой функции нам нужен будет отдельный файл вида. Который мы поместим в папку views/ далее в папку по имени контролера, например views/contact/, а файл назовем по имени $action. Создадим файлы вида и папки для контролеров contactController и mainController.
Теперь заполним кодом сами контролеры и файлы видов:
/controllers/contactController.php и views/contact/index.php
Добро пожаловать!
Теперь обратите внимание на файл layout.php что в папке views/. Он нужен для того что бы вынести в него общий для сайта код. Например, шапку сайта, меню, логотип и т.д. и внутри общего шаблона подключить конкретные файлы видов. Скопируйте код файла layout.php
Супер Блог
Главная
Популярные
Животные
Растения
Контакты
/$action.php"; ?>
Теперь напишем функцию, которая будет подключать общий файл вида, а в нем и конкретный. Для этого в папке /lib создайте файл viewLib.php и поместите в него следующий код:
//Подключаем наш общий вид include_once 'views/layout.php'; >
и добавим в файл index.php подключение этого файла и вызов функции
if (! empty($_GET['a'])) < $action = $_GET['a']; >$controllerPath = "controllers/Controller.php"; $functionName = $controller . '_' . $action; if (file_exists($controllerPath)) < include_once $controllerPath; if (function_exists($functionName)) < $data = $functionName(); //Вызываем функцию render($controller, $action, $data); >>
Теперь если скопировать все картинки из моей папки img в вашу и перейти по адресу http://blog.com/?c=contact&a=index мы подключим файл contactController, вызовем функцию contact_index(), дальше произойдет вызов функции render() в которой подключиться общий шаблон с разметкой, а в общем шаблоне конкретный файл вида. То же самое произойдет если поменять ссылку на http://blog.com/?c=main&a=index только файлы теперь будут другие и соответственно мы увидим другую страницу.
Десерт
Приступим к созданию страниц для вывода статей. Для на чала создадим файл db.txt в корне проекта. Формат файла должен быть следующим
id-1|категория|текст статьи -*- id-2|категория|текст статьи
1|животные| Собакай
Текст статьи про собаку
-*- 2|животные| Суслик
Текст статьи про суслика
-*- 3|животные| Олень
Текст статьи про оленя
-*- 4|растения| Кульбаба
Текст статьи про кульбабу
-*- 5|растения| Айстра
Текст статьи про айстру
-*- 6|растения| Бавовник
Текст статьи про бавовник
Контроллер articlesController заполним следующим кодом
$result = []; foreach ($items as $item) < //Разделяем данные одной статьи id категорию и текст $article = explode('|', $item); //Отбор по категориям if ($category === 'популярные' || $article['1'] === $category) < //Формируем конечный масив со статьями $result[] = [ 'id' =>$article['0'], 'category' => $article['1'], 'text' => $article['2'] ]; > > //Передаем данные в шаблон return ['articles' => $result, 'category' => $category]; > function articles_view() < $id = $_GET['id']; $text = file_get_contents('db.txt'); $items = explode('-*-', $text); $result = NULL; foreach ($items as $item) < $article = explode('|', $item); if ($id == $article['0']) < $result = [ 'id' =>$article['0'], 'category' => $article['1'], 'text' => $article['2'] ]; > > return ['article' => $result]; >
Файлы вида views/articles/index.php и views/articles/view.php
Итого
Вот и все 🙂 Я конечно не ожидал что это займет у меня почти пол ночи времени. Если вам понравилась публикация оставляйте комменты и будет продолжение или оставляйте критику дабы я смог отшлифовать материал, исправить ошибки и в дальнейшем готовить материал еще лучше. Заранее благодарен.
Как создать файл index php
Создание php файла «вручную».
Создать php файл с помощью «php»
Что означает создание php файла «вручную»
Любой способ, в котором вы непосредственно взаимодействуете с php файлом и называется — «создание файла php вручную.»
Что означает «создать php файл с помощью «php»«
Существует несколько функций, которые могут это делать!
Создать файл php на компьютере
Как создать файл php на компьютере — если у вас вообще нет никаких программ, которые могут создавать php файл, то это не повод расстраиваться! Ваш компьютер вам не враг, а друг!
Открываем любую папку, где вам требуется создать php файл нажимаем ПКМ внутри папки, в выпавшем окне ищем строку создать.
Далее выбираем любой файл, вообще не важно!
После создания любого файла, наводим мышку на него и нажимаем F2, название файла и разрешение становится доступным вбиваем требуемое название с разрешением файла php. (если нет разрешение — ищи показать разрешение для зарегистрированных файлов.)
Как создать файл php в блокноте
Для того, чтобы сделать файл php в блокноте нам потребуется:
Далее → вбираем название файла и добавляем разрешение php сохраняем!
Php создать файл на сервере
Для того, чтобы создать php файл на сервере есть несколько функций! Я пользуюсь функцией file_put_contents
$file= «здесь путь/название файла»;
Если вы в переменную $file поместите просто название файла, то файл создастся в папке размещения скрипта. Если у вас единая точка входа, то файл создастся в корневой папке.
Php создать файл на сервере видео
Как создать файл на сервере — я совсем забыл, что у меня есть видео на тему создания файла на сервере! Единственное, что нужно — это вместо html поставить разрешение php!
Друзья!
Берем путь и присоединяем к нему $home
$file = $home . «здесь путь/название файла «;
Php создать файл если не существует
У нас есть условие! Если файл не существует, то создать его!
Для этого потребуется условие и функция file_exists
Если файла php не существует, то создадим его с помощью file_put_contents.
$rezult = ‘Файл ‘.$file.’ существует’;
$rezult = ‘Файл ‘.$file.’ НЕ существует’;
file_put_contents(«index.html», «привет мир!»>;
Пример создания файла php при нажатии на кнопку
То вы можете сделать файл php онлайн!
Если вы видите такую строчку:
То вам сперва нужно удалить файл, а потом уже вернуться на эту страницу и у вас будет возможность создать файл php онлайн на сервере!
Сделать файл php при нажатии на кнопку с содержимым
Не будем углубляться в дебри, а лишь набросаем, как делать файл с контентом и тот самый пример разберем.
Из формы с помощью post отправляем два значения.
Загоняем каркас страницы с нашими переменным в другу переменную:
С помощью file_put_contents записываем данные в файл :
И последнее о чем не сказали — это переменная $name_page — которая будет названием файла. Для этого, русский текст заголовка превратим в латиницу с помощью транслитерации Какими программами пользуюсь(пользовался) я!?
Составим рейтинг программ чем больше число, тем свежее.
Я начинал с Namo 9 — вся кривая была, не знаю, сейчас существует или нет!
В свое время считал программу — Dreamweaver самой крутой и классной! Но время проходит и потом написал целую страницу Почему сегодня не Dreamweaver!?
Хорошая, простая, бесплатная программа — Notepad для работы с кодом, не только php, до сих пользуюсь и сейчас установлена в на компе!
Основная — Sublime, которой пользуюсь больше времени, чем всеми другими!