Створити та завантажити CSV на PHP
Розглянемо можливість швидкого створення CSV файлу з автоматичним скачуванням файлу. Розглянемо формування, роздільники та header для можливості завантажити файл.
При синхронізації 1с з сайтом, для розвантаження будь-якої інформації, слід вдатися до авторизації. Щоб не накидали на сайт різного непотрібного сміття (у кращому разі).
Так ось, начитавшись літератури, зрозумів, що 1с обмінюється хедерами з сайтом і прописує йому PHP_AUTH_USER і PHP_AUTH_PW . Але в моєму випадку не вдалося їх зловити в $_SERVER (можливо якісь налаштування в 1с не простовил).
Спочатку планувалося зловити дані після авторизації так :
<?php
$dbSeq = ['user' => 'test', 'pass' => 'test'];
$this->login = isset($_SERVER['PHP_AUTH_USER']) ? trim($_SERVER['PHP_AUTH_USER']) : null;
$this->password = isset($_SERVER['PHP_AUTH_PW']) ? trim($_SERVER['PHP_AUTH_PW']) : null;
if ($this->password == $dbSeq['pass'] && $this->login == $dbSeq['user']) {
return true;
}
Але 1с не віддавала нічого або сервер не міг прийняти ці дані (не зміг знайти причини).
Моїм рішенням стало перенаправити HTTP:Authorization . Я використав mod_rewrite на apache .
Обов'язково в .htaccess має бути рядок :
RewriteEngine on
яка включає роботу механізму перетворення на mod_rewrite.
У .htaccess після всіх правил RewriteRule було додано :
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
REMOTE_USER - вказує, що {HTTP:Authorization} буде писатися в $_SERVER['REDIRECT_REMOTE_USER'] .
Дані прилетіли до base64.
var_dump($_SERVER['REDIRECT_REMOTE_USER']);
["REDIRECT_REMOTE_USER"]=>
string(18) "Basic dGVzdDp0ZXN0"
Зробив з ними нехитру маніпуляцію :
<?php
$dbSeq = ['user' => 'test', 'pass' => 'test'];
if ($_SERVER["REDIRECT_REMOTE_USER"]) {
$info = base64_decode(end(explode(' ',$_SERVER["REDIRECT_REMOTE_USER"])));
$info = explode(':', $info);
$this->login = $info[0]; // Прилетіло test логін
$this->password = $info[1]; // Прилетіло test пароль
}
if ($this->password == $dbSeq['pass'] && $this->login == $dbSeq[ 'user']) {
return true;
}
Розглянемо можливість швидкого створення CSV файлу з автоматичним скачуванням файлу. Розглянемо формування, роздільники та header для можливості завантажити файл.
Останні шаблони від ImageCMS 4.12, для завантаження потрібна авторизація.
Розглянемо варіанти популярних варіантів зберігання товарів у кошику в інтернет-магазині. Позначимо плюси та мінуси таких зберігання. Розглянемо варіанти довгострокового зберігання корзини.
Створення ключа для imageCMS 4.9-4.12.1 Pro та Pre. Для отримання авторизуватися.
При запуску скрипта з консолі немає DOCUMENT_ROOT в $_SERVER. Спробуємо обійти це своїми шляхами, відловити директорію файлу.
Після розробки будь-якого інструменту на PHP стає питання, наскільки створений код ресурсний і які елементи він зачіпає ще. Розглянемо установку xhprof, налаштування та розглянемо способи роботи з xhprof.
Розберемо можливість об'єднання умов у запиті груп у Propel. Розглянемо приклад фільтрації по полях за допомогою -> condition () і -> combine ().
Метою статті стало приєднання (join) не оголошеної у схемі (schema.xml) таблиці у propel2. Мабуть, рідкісний випадок або просто недостатньо документації по даній Propel ORM.