Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

Перевернуть строку в PHP

#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





Комментариев нет:

Отправить комментарий