У меня есть проект интеграции с системой ERP, который возвращает мне список счетов, сжатых с помощью zip, в виде двоичной строки:
Xc1NCsIwEEDhq0j2ZuIPCEWF4qqgNNCN2yFWGzAzMhmMvb1g0YUHeN / b1iI4tlcvkSXq2NCTY + hnr3SnvDOD6qMCyGHoE2Z7QcXApIJBLcsNls6twW1gyn3b1b6xB06Jyf6R2UxoFX9sKcWW1RdawPl07D6neaSsSKE3sH8D
Мне не удается извлечь его, я пытаюсь использовать gzuncompress()
, new ArchiverZip()
также пытаюсь преобразовать его из bin2hex
, base64
... и ничего, я должен получить объект из этой строки.
Ребята, которые разрабатывают ERP-систему, сказали мне, что они сжимают ее с помощью Ionic (??): Ionic.Zlib.DeflateStream.UncompressBuffer(compressedData);
Есть идеи ? Благодарность
2 ответа
Эти данные сжимаются с помощью raw deflate (без zlib, gzip или zip-оболочки вокруг данных deflate) и закодированы в base64. В декодированном и распакованном виде это:
<ArrayOfPriorityInvoice xmlns="http://schemas.datacontract.org/2004/07/PrioriPOSAPI.Common.PriorityInvoices" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"/>
Используйте base64_decode()
и gzinflate()
для извлечения данных.
Попробуйте прочитать строку с помощью file_get_contents
Затем запишите zip-файл в папку tmp, затем распакуйте его
Скажите, если вам нужны дополнительные объяснения
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.