Как правильно читать теги с двоеточием (<p:id>) в google_merchant.xml в PHP
Способ чтения xml с тегами имеющими двоеточие <p:id>, как в выгрузке в Google Merchant. Использование registerXPathNamespace или обращение к тегу напрямую.
При синхронизации 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с не отдавала ничего или сервер не мог принять эти данные (не смог найти причину).

Моим решением стало пeренаправить 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;
}
Способ чтения xml с тегами имеющими двоеточие <p:id>, как в выгрузке в Google Merchant. Использование registerXPathNamespace или обращение к тегу напрямую.
Разбор JWT HS256 шифрования, расшифровка JWT HS256, сравнение сигнатур sha256 на целостность информации.
Рассмотрим исправление исчезновения пробелов перед переменными в старой версии Twig на php 7.4 не обновляя версию.
Рассмотрим возможность быстрого создания CSV файла с автоматическим скачиванием файла. Рассмотрим формирование, разделители и header для возможности скачать файл.
Последние шаблоны от ImageCMS 4.12, для скачивания нужна авторизация.