PHP Символы на русском языке

142
05 мая 2019, 13:00

Вообщем народ самая обычная проблема "наверно". Есть функция:

class PHPWorks {
    public function sort_string($line) {
        $array_line = explode(" ", $line);
        $new_line = '';
        foreach ($array_line as $a_line) {
            $line_one = str_split(strtolower($a_line));
            sort($line_one);
            $ret = "";
            foreach($line_one as $line_o) {
                $ret .= $line_o;
            }
            $new_line .= $ret . " ";
        }
        return trim($new_line);
    }
}

Функция работает, но проблема в том, что если я отправляю символы на русском языке, то они выводятся в виде ромбиков с вопросами как это исправить??

Answer 1

Вы пытаетесь для строки в многобайтовой кодировке использовать функцию explode. Данная функция работает побайтово и "портит" символы многобайтовых кодировок. Для русского языка лучше использовать:

$array_line = mb_split("\s", $line);

http://php.net/manual/ru/function.mb-split.php

Answer 2

Вообщем полностью рабочий код который поддерживает и русский, вдруг кому-то пригодится:

class PHPWorks {
    public function sort_string($line) {
        $array_line = mb_split("\s", $line);
        $new_line = '';
        foreach ($array_line as $a_line) {
            $line_one = preg_split('//u', strtolower($a_line), null, PREG_SPLIT_NO_EMPTY);
            sort($line_one);
            $ret = '';
            foreach($line_one as $line_o) {
                $ret .= $line_o;
            }
            $new_line .= $ret . ' ';
        }
        return trim($new_line);
    }
}
READ ALSO
Вопрос по программированию на PHP. Про PDO

Вопрос по программированию на PHP. Про PDO

Столкнулся с такой проблемой, что при повторной инициализации переменной с соединением пишет ошибку:

129
PHP Parse error: syntax error, unexpected '$token' (T_VARIABLE)

PHP Parse error: syntax error, unexpected '$token' (T_VARIABLE)

Передаю с телефона данные в PHP

144
Время отклика php скрипта, при обращении ajax

Время отклика php скрипта, при обращении ajax

Разрабатываю ajax поиск по сайтуИспользую jquery, php, bitrix

129
Как получить данные из SQLite один раз?

Как получить данные из SQLite один раз?

Из базы данных получаю данные по $click_id (id товара)

155