#php #алгоритм
Как перевернуть строку? Было Привет - стало тевирП. Стандартную функцию не предлагать - strrev() не работает с кодировкой utf-8. Варианты которые сделал: Использование mbstring. Проход циклом с конца строки, достаем буквы через mb_substr(), формируем итоговую строку. Использование регулярных выражений. Выборка символов через preg_match_all() в массив, делаем array_reverse() и implode(). Подскажите еще варианты алгоритмов/реализаций подобного преобразования.
Ответы
Ответ 1
function mb_strrev($text) { return join('', array_reverse(preg_split('//u', $text, -1, PREG_SPLIT_NO_EMPTY))); } echo mb_strrev('☆❤world'); Ну, и еще как вариант можно рассмотреть: function mb_strrev($string) { $string = strrev(mb_convert_encoding($string, 'UTF-16BE', 'UTF-8')); return mb_convert_encoding($string, 'UTF-8', 'UTF-16LE'); } echo mb_strrev('☆❤world');Ответ 2
http://php.net/manual/ru/function.strrev.php#122953 function mb_strrev($str){ $r = ''; for ($i = mb_strlen($str); $i>=0; $i--) { $r .= mb_substr($str, $i, 1); } return $r; } echo mb_strrev("☆❤world"); // echo "dlrow❤☆" ?>Ответ 3
Комментариев нет:
Отправить комментарий