/** * Retourne un tableau des caractères de $sInputString sous leur forme ordinale. * * @param string $sInputString Chaîne de caractères dont les caractères sont à retourner en ordinal. * @return array Tableau indexé. */ protected function _getOrds($sInputString) { $aOrds = array(); if ($this->_oString->getEncoding() === Encoding::UTF_8) { $sString = mb_convert_encoding($sInputString, Encoding::UCS_4BE, Encoding::UTF_8); for ($iCharIndex = 0; $iCharIndex < mb_strlen($sString, Encoding::UCS_4BE); $iCharIndex++) { // Calcul de la valeur totale des 4 bits $sStringChar = mb_substr($sString, $iCharIndex, 1, Encoding::UCS_4BE); $aUnpackedData = unpack('N', $sStringChar); $aOrds[] = $aUnpackedData[1]; } } else { r::char()->setModifiers($this->_m())->matchAll($sInputString, $aChars); foreach ($aChars as $sChar) { $aOrds[] = ord($sChar); } } return $aOrds; }