Вообщем народ самая обычная проблема "наверно". Есть функция:
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);
}
}
Функция работает, но проблема в том, что если я отправляю символы на русском языке, то они выводятся в виде ромбиков с вопросами как это исправить??
Вы пытаетесь для строки в многобайтовой кодировке использовать функцию explode
. Данная функция работает побайтово и "портит" символы многобайтовых кодировок. Для русского языка лучше использовать:
$array_line = mb_split("\s", $line);
http://php.net/manual/ru/function.mb-split.php
Вообщем полностью рабочий код который поддерживает и русский, вдруг кому-то пригодится:
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);
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Столкнулся с такой проблемой, что при повторной инициализации переменной с соединением пишет ошибку:
Разрабатываю ajax поиск по сайтуИспользую jquery, php, bitrix