private function readStructureTextSIRun($stream, $pos, $strLenRT) { $arrayReturn = array('length' => 0, 'strLenRT' => $strLenRT); $arrayReturn['strLenRT'] -= self::getInt4d($stream, $pos + $arrayReturn['length']); $arrayReturn['length'] += 4; $data = self::getInt4d($stream, $pos + $arrayReturn['length']); $arrayReturn['length'] += 4; $masksData = array(); $masksData['spell'] = $data >> 0 & bindec('1'); $masksData['lang'] = $data >> 1 & bindec('1'); $masksData['altLang'] = $data >> 2 & bindec('1'); $masksData['unused1'] = $data >> 3 & bindec('1'); $masksData['unused2'] = $data >> 4 & bindec('1'); $masksData['fPp10ext'] = $data >> 5 & bindec('1'); $masksData['fBidi'] = $data >> 6 & bindec('1'); $masksData['unused3'] = $data >> 7 & bindec('1'); $masksData['reserved1'] = $data >> 8 & bindec('1'); $masksData['smartTag'] = $data >> 9 & bindec('1'); if ($masksData['spell'] == 1) { $data = self::getInt2d($stream, $pos + $arrayReturn['length']); $arrayReturn['length'] += 2; $masksSpell = array(); $masksSpell['error'] = $data >> 0 & bindec('1'); $masksSpell['clean'] = $data >> 1 & bindec('1'); $masksSpell['grammar'] = $data >> 2 & bindec('1'); } if ($masksData['lang'] == 1) { // $data = self::getInt2d($stream, $pos); $arrayReturn['length'] += 2; } if ($masksData['altLang'] == 1) { // $data = self::getInt2d($stream, $pos); $arrayReturn['length'] += 2; } if ($masksData['fBidi'] == 1) { throw new \Exception('Feature not implemented (l.' . __LINE__ . ')'); } if ($masksData['fPp10ext'] == 1) { throw new \Exception('Feature not implemented (l.' . __LINE__ . ')'); } if ($masksData['smartTag'] == 1) { throw new \Exception('Feature not implemented (l.' . __LINE__ . ')'); } return $arrayReturn; }