Web Мастерская Блог
Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.
Как записать массив в файле на PHP
Для записи в файл, можно использовать функцию
Если указанного файла не существует, функция
Функция отлично пишет строки, но вот писать массивы не умеет. Чтобы записать массив в файл, при помощи
Теперь массив будет записан в файл, сохранив свою структуру....
file_put_contents
, которая и была создана для записи в файл. Пример:
// $file: Путь и имя файла, в который будет осуществляться запись
// $content: Текст / Код, который необходимо записать
file_put_contents($file, $content);
Если указанного файла не существует, функция
file_put_contents
его создаст. И если файл создан, функция его перезапишет.Функция отлично пишет строки, но вот писать массивы не умеет. Чтобы записать массив в файл, при помощи
file_put_contents
, необходимо предварительно перевести "структуру" массива в строку. Сделать это можно функцией var_export
, добавив второй необязательный параметр: true
(true
- возвращает представление переменной вместо его вывода):
// $file: Путь и имя файла, в который будет осуществляться запись
// $content: Массив, который необходимо записать в файл
$content = var_export($content, true);
file_put_contents($file, $content);
Теперь массив будет записан в файл, сохранив свою структуру....
- Жалоба
- 1
Вложенная буферизация ob_start()
Мой движок использует буферизацию. При написании одного модуля (Блог: Обработать файл перед его получением на PHP) мне потребовалось добавить в уже существующею буферизацию, ещё одну. В интернете искал, как правильно сделать вложенную буферизацию и решение было найдено. Моя буферизация в буферизации выглядит так:
...
// Получение шаблона приложения
ob_start();
include (phpfox::getParam('core.dir_app') . $id . PHPFOX_DS . 'page' . PHPFOX_DS . $page . '.php');
$html = ob_get_clean();
// End: Получение шаблона приложения
Обработать файл перед его получением на PHP
При написании одного модуля для движка, потребовалось получать шаблоны для вставки кода в уже загруженную страницу. Делал это так:
По ходу развития модуля, пришлось добавлять PHP код, он должен был выполняться перед получением самого шаблона. Но он не обрабатывался функцией
Чтобы PHP код выполнялся перед вставкой шаблона в страницу, было принято решение заменить
Так работает, как хотелось. Код выполняется перед вставкой в страницу.
Так как мой движок изначально использует буферизацию,...
// Получение шаблона приложения
$html = file_get_contents(phpfox::getParam('core.dir_app') . $id . PHPFOX_DS . 'page' . PHPFOX_DS . $page . '.php', true);
По ходу развития модуля, пришлось добавлять PHP код, он должен был выполняться перед получением самого шаблона. Но он не обрабатывался функцией
file_get_contents
. Код проходил, либо как текст, либо, как закомментированный код...Чтобы PHP код выполнялся перед вставкой шаблона в страницу, было принято решение заменить
file_get_contents
, на:
// Получение шаблона приложения
ob_start();
include (phpfox::getParam('core.dir_app') . $id . PHPFOX_DS . 'page' . PHPFOX_DS . $page . '.php');
$html = ob_get_contents();
ob_end_clean();
// End: Получение шаблона приложения
Так работает, как хотелось. Код выполняется перед вставкой в страницу.
Так как мой движок изначально использует буферизацию,...
Копирование SVG
При правках иконок на SVG, может появиться необходимость скопировать полностью или какую то часть иконки. Чтобы не плодить один и тот же код несколько раз, его можно выводить в нужном месте, при помощи тега
Так как все иконки находятся у меня в отдельном файле, в этом же файле я написал макет, который используется во многих SVG картинках:
Теперь там, где мне нужен макет, получаю его в иконку так:
Важно: Если Вы как и я храните иконки в отдельном файле, и в этом файле используете тег
Чтобы не повторять мои ошибки: Тема: Ошибки в коде SVG.
Возможно, будет интересно:
- Тема: Масштабируемая векторная графика (SVG: Scalable Vector Graphics)
- Блог: Как выводить SVG иконки из отдельного файла...
<use>
.Так как все иконки находятся у меня в отдельном файле, в этом же файле я написал макет, который используется во многих SVG картинках:
<defs>
<g id="model">
<!-- Код макета -->
</g>
</defs>
Теперь там, где мне нужен макет, получаю его в иконку так:
<use xlink:href="#model"/>
Важно: Если Вы как и я храните иконки в отдельном файле, и в этом файле используете тег
<use>
, в открывающемся теге <svg>
должна присутствовать строка: xmlns:xlink="http://www.w3.org/1999/xlink"
:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
Чтобы не повторять мои ошибки: Тема: Ошибки в коде SVG.
Возможно, будет интересно:
- Тема: Масштабируемая векторная графика (SVG: Scalable Vector Graphics)
- Блог: Как выводить SVG иконки из отдельного файла...
CSS переменные в SVG
На данный момент работаю с SVG. Практически в каждом теге есть код цвета. В основном использую одни и те же цвета, пока их всего пять. Думаю, что в будущем цвет буду менять, придётся копаться в нескольких файлах, производить замену. Тут задумался - а ведь проще написать переменные и использовать их, в будущем не придётся рыться в нескольких файлах, а отредактировать всего один. Так я и сделал, я добавил переменные в SVG. Сейчас расскажу, как я это сделал.
Я создал файл: "svg.css", с таким содержимым:
Подключил "svg.css" к документу. Теперь в SVG меняю:
На:
Готово. Переменная отдаёт указанный ей код цвета.
CSS переменная должна начинаться с двойного дефиса (
Я создал файл: "svg.css", с таким содержимым:
:root {
--cool: #0074FF; /* Оттенок синего */
--murk: #033C59; /* Оттенок синего + зелёного */
--spring: #48CFAD; /* Оттенок зелёного */
--smoke: #CCD3EB; /* Оттенок серого */
--fire: #FC6459; /* Оттенок красного */
}
Подключил "svg.css" к документу. Теперь в SVG меняю:
<g fill="#0074FF">
На:
<g fill="var(--cool)">
Готово. Переменная отдаёт указанный ей код цвета.
CSS переменная должна начинаться с двойного дефиса (
--
)....- Apache 6
- CMS 3
- CSS 12
- FTP 1
- HTML 10
- JavaScript 32
- MySQL 16
- Nginx 7
- PHP 41
- phpMyAdmin 2
- SVG 3
- URL 1
- XML 3
- Безопасность 4
- Библиотека JS 12
- Графика 1
- Доменное имя 1
- Инструкция 1
- Кодировка 2
- Контент 6
- Мнение 2
- Монетизация сайта 2
- Настройка 3
- Оптимизация 2
- Ошибка 7
- Поисковая система 1
- Продвижение сайта 6
- Софт 1
- Старт 2
- Функция 1
- Хостинг | Сервер 3