Шаблоны ImageCMS 4.10-4.12.1
Последние шаблоны от ImageCMS 4.12, для скачивания нужна авторизация.
Пример создания CSV с разделителем строки ";"
Код:
// 1
$fp = fopen('./fileName.csv', 'w');
if ($fp === false) {
// 2
exit('Can not create file (No Rights) ./fileName.csv');
}
// 3
$models = [
[
'name' => 'Visa',
'type' => 'Card',
'balance' => '10.0'
],
[
'name' => 'Master',
'type' => 'Card',
'balance' => '0'
]
];
// 4
fwrite($fp, '"Имя";"Тип";"Баланс"' . "\n");
foreach ($models as $v) {
fwrite($fp, '"' . $v['name'] . '";"'
. $v['type'] . '";"'
. $v['balance'] . '"'
. "\n");
}
// 5
fseek($fp, 0);
fclose($fp);
// 6
$data = file_get_contents('./fileName.csv');
// 7
header('Content-Type: text/csv'); // 7.1
header('Content-Disposition: attachment; filename="fileName.csv"'); // 7.2
header("Content-Transfer-Encoding: binary"); // 7.3
header('Expires: 0'); // 7.4
header('Pragma: no-cache'); // 7.5
header("Content-Length: ".strlen($data)); // 7.6
// 8
exit($data);
Примечание:
Чтобы сработали header, перед срабатыванием кода не должно быть BOM и любого вывода информации.
1 - Создаем файл fileName.csv в корне сайта для записи.
2 - Предупреждаем про ошибку, если нет прав на запись.
3 - Массив значений, который мы будем обрабатывать
4 - Запись в файл. '"Имя";"Тип";"Баланс"' . "\n" (";" - разделитель строки, "\n" - перенос строки).
5 - Возвращаем указатель на начало файла и закрываем файл (сохраняем).
6 - Считываем файл заново.
7 - Даем заголовки для возможности скачать файл.
7.1 - Параметр определяющий тип файла.
7.2 - Указатель на прикрепление файла.
7.3 - В каком виде передавать (в данном случае в бинарном).
7.4, 7.5 - Указатель чтобы не кешировать файл и постоянно отдавать актуальный.
7.6 - Размер контентной части файла.
8 - Выводим информацию, которая в связке с заголовками даст возможность скачать ее в CSV файл.
Результат:
Последние шаблоны от ImageCMS 4.12, для скачивания нужна авторизация.
Рассмотрим варианты популярные варианты хранения товаров в корзине в интернет-магазине. Обозначим плюсы и минусы таких хранений. Рассмотрим варианты долгосрочного хранения корзины.
Создание ключа для imageCMS 4.9-4.12.1 Pro и Pre. Для получения следует авторизироваться.
При запуске скрипта с консоли отсутствует DOCUMENT_ROOT в $_SERVER. Попытаемся обойти это своими путями, отловить директорию файла.
После разработки какого-либо инструмента на PHP, становится вопрос, насколько созданный код ресурсный и какие элементы он затрагивает еще. Рассмотрим установку xhprof, настройку и рассмотрим способы работы с xhprof.
Разберем возможность объединения условий в запросе по группам в Propel. Рассмотрим пример фильтрации по полям с помощью ->condition() и ->combine().
Столкнулся с проблемой авторизации 1с на сайте. Сервер почему то не принимал от нее параметр PHP_AUTH_USER и PHP_AUTH_PW. Рассмотрим подробнее решение и обход данных параметров в $_SERVER .
Целью статьи стало присоединение (join) не объявленной в схеме (schema.xml) таблице в propel2. Видимо редкий случай или просто недостаточно документации по данной Propel ORM.