Як правильно читати теги з двокрапкою (<p:id>) у google_merchant.xml у PHP
Спосіб читання xml з тегами, що мають двокрапку <p:id>, як у вивантаженні в Google Merchant. Використання registerXPathNamespace або звернення безпосередньо до тега.
Приклад створення 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 файл.
Результат:

Спосіб читання xml з тегами, що мають двокрапку <p:id>, як у вивантаженні в Google Merchant. Використання registerXPathNamespace або звернення безпосередньо до тега.
Розбір JWT HS256 шифрування, розшифровка JWT HS256, порівняння сигнатур sha256 на цілісність інформації.
Розглянемо виправлення зникнення пробiлiв перед змінними у старій версії Twig на php 7.4 не оновлюючи версію.
Останні шаблони від ImageCMS 4.12, для завантаження потрібна авторизація.
Розглянемо варіанти популярних варіантів зберігання товарів у кошику в інтернет-магазині. Позначимо плюси та мінуси таких зберігання. Розглянемо варіанти довгострокового зберігання корзини.