/** * Read (and remove) the UNA segment from the passed string. * * @param string $message The EDI message to extract the UNA from * * @return void */ protected function setupSpecialCharacters(&$message, Tokenizer $tokenizer) { if (substr($message, 0, 3) !== "UNA") { return; } # Get the character definitions $chars = mb_substr($message, 3, 6); # Remove the UNA segment from the original message $message = ltrim(mb_substr($message, 9), "\r\n"); $pos = 0; $tokenizer->setComponentSeparator(mb_substr($chars, $pos++, 1)); $tokenizer->setDataSeparator(mb_substr($chars, $pos++, 1)); $tokenizer->setDecimalPoint(mb_substr($chars, $pos++, 1)); $tokenizer->setEscapeCharacter(mb_substr($chars, $pos++, 1)); mb_substr($chars, $pos++, 1); $tokenizer->setSegmentTerminator(mb_substr($chars, $pos++, 1)); }