Расшифровка JWT HS256 и сверка сигнатуры sha256
Разбор JWT HS256 шифрования, расшифровка JWT HS256, сравнение сигнатур sha256 на целостность информации.
Считать простым способом тег <p:id> в xml не получится. Следует проанализировать xml на описание пространства xmlns:g="http://base.google.com/ns/1.0". Если такая строка присутствует, то можно воспользоваться xpath, а если нет, то есть способ прочитать такой тег проще.
Пример xml:
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title>Пример магазина</title>
<link>https://example.com</link>
<description>Товарный фид</description>
<item>
<g:id>12345</g:id>
<g:title>Товар 1</g:title>
<g:price>199.00 UAH</g:price>
</item>
<item>
<g:id>12346</g:id>
<g:title>Товар 2</g:title>
<g:price>299.00 UAH</g:price>
</item>
</channel>
</rss>
<?php
$xml = simplexml_load_string($xmlString);
// Регистрируем пространство имён для работы через xpath
$xml->registerXPathNamespace('g', 'http://base.google.com/ns/1.0');
// Выносим item в переменную
$items = $xml->xpath('//item');
$result = [];
foreach ($items as $item) {
$id = (string) $item->xpath('g:id')[0];
$title = (string) $item->xpath('g:title')[0];
$price = (string) $item->xpath('g:price')[0];
$result[] = [
'id' => $id,
'title' => $title,
'price' => $price,
];
}
var_dump($result);
Конструкция для обращения к нужному тегу определяется так "$item->xpath('g:id')[0]".
<?php
$xml = simplexml_load_string($xmlString);
$result = [];
foreach ($xml->channel->item as $item) {
$result[] = [
'id' = (string) $item->{'g:id'};
'title' = (string) $item->{'g:title'};
'price' = (string) $item->{'g:price'};
];
// ИЛИ
// $result['id'] = (string)$item->children('g', true)->id;
}
var_dump($result);
Можно использовать конструкцию $item->children('g', true)->id, а можно сделать еще короче и более читаемо, например обращение через свойство к классу $item->{'g:id'}. Это то же самое, что и обращение к обычному классу.
<?php
$obj = new stdClass();
$obj->{'g:field'} = 'значение';
var_dump($obj->{'g:field'});
Разбор JWT HS256 шифрования, расшифровка JWT HS256, сравнение сигнатур sha256 на целостность информации.
Рассмотрим исправление исчезновения пробелов перед переменными в старой версии Twig на php 7.4 не обновляя версию.
Рассмотрим возможность быстрого создания CSV файла с автоматическим скачиванием файла. Рассмотрим формирование, разделители и header для возможности скачать файл.
Последние шаблоны от ImageCMS 4.12, для скачивания нужна авторизация.
Рассмотрим варианты популярные варианты хранения товаров в корзине в интернет-магазине. Обозначим плюсы и минусы таких хранений. Рассмотрим варианты долгосрочного хранения корзины.