controlaltjeff/p7m-fattura-decoder
Composer 安装命令:
composer require controlaltjeff/p7m-fattura-decoder
包简介
PHP library per decodificare file PKCS#7 (.p7m) ed estrarre il contenuto XML.
README 文档
README
PHP library per decodificare file .p7m (PKCS#7 signed) ed estrarre il contenuto XML firmato.
A PHP library to decode P7M (PKCS#7 signed) files and extract the signed XML content. Designed with the Italian Fattura Elettronica system in mind.
Installazione
composer require controlaltjeff/p7m-fattura-decoder
Requisiti
- PHP 5.3+ (runtime) / PHP 8.1+ (sviluppo)
ext-dom,ext-libxmlopensslCLI (opzionale — usato come strategia di decodifica primaria)
Nota per ambienti PHP 5.3/7.x: i tool di sviluppo (PHPUnit, PHPStan) richiedono PHP 8.1+. Installa la libreria con
--no-devper evitare conflitti:composer require controlaltjeff/p7m-fattura-decoder --no-dev
Usage
use Controlaltjeff\P7MDecoder\P7MDecoder; // Da file $xml = P7MDecoder::decodeFile('fattura.xml.p7m'); // Da stringa $xml = P7MDecoder::decodeString($p7mContent); if ($xml === null) { throw new \RuntimeException('Impossibile decodificare il file P7M'); } // Correzioni automatiche applicate durante la decodifica $corrections = P7MDecoder::getLastCorrections(); foreach ($corrections as $fix) { echo "Tag corretto: {$fix['from']} → {$fix['to']}\n"; }
Strategie di decodifica (8 livelli)
La libreria tenta la decodifica in ordine, fermandosi al primo successo:
- Plain XML — Se già XML valido, restituito direttamente
- OpenSSL DER —
openssl smime -verify -inform DER - Base64 → DER — Base64 decode + verifica DER
- OpenSSL PEM —
openssl smime -verify -inform PEM(include conversione Base64 → PEM) - PHP openssl_pkcs7_verify() — Fallback via estensione PHP
- Estrazione manuale — Ricerca fragment XML nel binario
- Correzione tag — Ricerca fuzzy (Levenshtein) su tag XML danneggiati (OCR, encoding)
- Base64 + estrazione manuale — Decodifica base64 + fragment XML
Correzioni automatiche
Oltre alla decodifica, la libreria applica correzioni automatiche su:
- Tag XML — Correzione fuzzy con distance ≤ 1 rispetto alla lista tag FatturaPA validi
- Testo OCR/encoding — 30+ pattern di correzione per errori tipici di OCR e trasmissione (es.
UnitaMisurah→UnitaMisura,DettHaglioLinee→DettaglioLinee)
Le correzioni applicate sono accessibili via P7MDecoder::getLastCorrections().
Sviluppo
composer install
composer test
composer stan
composer check
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-06-12