예제 #1
0
 /**
  * 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));
 }