chemaclass / edifact-parser
一个 EDIFACT 文件解析器,用于提取任何定义段中的值
5.0.0
2023-02-10 12:18 UTC
Requires
- php: >=8.0
- ext-json: *
- sabas/edifact: ^0.6
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.12
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^5.4
- vimeo/psalm: ^4.29
This package is auto-updated.
Last update: 2024-09-18 16:33:26 UTC
README
EDIFACT 代表 电子数据交换用于行政、商业和运输
。
此存储库包含一个解析任何 EDIFACT 文件的解析器,用于从 EDIFACT 格式化文件中定义的任何段中提取值。
好吧,但... 什么是 EDIFACT?
EDIFACT 文件格式
-
文件的每一行都由属于消息特定段的一组数据组成。
-
段由一个标签定义。随后是属于该段的其他数据。更多关于段的信息 在这里。
-
消息是一系列段。通常,UNH 和 UNT 段之间的所有段组成一个消息。
-
事务是属于文件的消息列表。
安装
composer require chemaclass/edifact-parser
贡献
您非常欢迎通过报告 问题、分享 想法 或通过您的 Pull Requests 贡献。
基本示例
您可以看到打印段的完整示例 这里。
您可以看到提取数据的完整示例 这里。
<?php declare(strict_types=1); use EdifactParser\EdifactParser; use EdifactParser\Segments\NADNameAddress; require dirname(__DIR__) . '/vendor/autoload.php'; $fileContent = <<<EDI UNA:+.? ' UNB+UNOC:3+9457386:30+73130012:30+19101:118+8+MPM 2.19+1424' UNH+1+IFTMIN:S:93A:UN:PN001' TDT+20' NAD+CZ+0410106314:160:Z12++Company Centre+c/o Carrier AB+City1++12345+DE' NAD+CN+++Person Name+Street Nr 2+City2++12345+DE' UNT+18+1' UNZ+2+8' EDI; $parserResult = EdifactParser::createWithDefaultSegments()->parse($fileContent); $firstMessage = $parserResult->transactionMessages()[0]; $cnNadSegment = $firstMessage->segmentByTagAndSubId('NAD', 'CN'); $personName = $cnNadSegment->rawValues()[4]; var_dump($personName); // 'Person Name'