Web МастерскаяБлог
Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.
PHP: Как составить из строки элемент массива
Стояла задача, составить из получаемой строки элемент массива. Допустим, есть такой массив:
Функция принимает строку:
С решением помогли на Хабр:
Оказалось, всё просто! С каждой итерацией мы переходим к следующему "вложению" массива, подбираясь к нужному нам элементу.
Проверяем:
На экране видим:
А значит всё правильно.
Для решении мой задачи, так же, есть библиотека Array Dot Notation, но я выбрал решение выше....
$arr = [
	'k1' => [
		'k2' => [
			'k3' => [
				'k4' => 'v'
				]
			]
		]
];Функция принимает строку:
k1/k2/k3, используя данную строку, необходимо отдать элемент массива: $arr['k1']['k2']['k3'].С решением помогли на Хабр:
<?php
$arr = [
	'k1' => [
		'k2' => [
			'k3' => [
				'k4' => 'v'
				]
			]
		]
];
$s = "k1/k2/k3";
$array = explode('/', $s);
foreach ($array as $v)
{
	$arr = $arr[$v];
}Оказалось, всё просто! С каждой итерацией мы переходим к следующему "вложению" массива, подбираясь к нужному нам элементу.
Проверяем:
print_r($arr);На экране видим:
['k4' => 'v']А значит всё правильно.
Для решении мой задачи, так же, есть библиотека Array Dot Notation, но я выбрал решение выше....
- Жалоба
 
Как записать массив в файл на 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);Теперь массив будет записан в файл, сохранив свою структуру....
Вложенная буферизация 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: Получение шаблона приложенияТак работает, как хотелось. Код выполняется перед вставкой в страницу.
Так как мой движок изначально использует буферизацию,...
Как получить высоту и ширину изображения на PHP
Для получения высоты и ширины картинки служит функция: 
Делаем так:
Теперь у нас две переменные, где
getimagesize. Функция вернет массив данных, где два элемента будут содержать в себе ширину и высоту.Делаем так:
list ($w, $h) = getimagesize($img);Теперь у нас две переменные, где
$w - ширина изображения, $h - высота.$img - полный путь и имя картинки....
Категории
- Apache 6
 - CMS 3
 - CSS 16
 - FTP 1
 - HTML 11
 - JavaScript 43
 - MySQL 17
 - Nginx 16
 - PHP 52
 - phpMyAdmin 2
 - SVG 3
 - URL 1
 - XML 3
 - Безопасность 7
 - Библиотека JS 16
 - Графика 3
 - Доменное имя 1
 - Инструкция 1
 - Кодировка 2
 - Контент 8
 - Мнение 1
 - Мобильное устройство 1
 - Монетизация сайта 2
 - Настройка 3
 - Оптимизация 2
 - Ошибка 11
 - Поисковая система 1
 - Продвижение сайта 6
 - Производительность 1
 - Софт 1
 - Старт 2
 - Сценарий 1
 - Функция 1
 - Хостинг | Сервер 3
 
Реклама















