Задать вопрос
JackShcherbakov
@JackShcherbakov

Функция trim() выводит крякозябры. Что делать?

Здравствуйте!
Вот код:
<pre>
<?php
	$str = "Фриланс";
	print trim($str,"Фри");
?>
</pre>

Вот результат:
�анс
Вот документация: php.net/manual/ru/function.trim.php

Как исправить?
Заранее спасибо!
  • Вопрос задан
  • 223 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
@po5epT
Как исправить?


Не использовать trim для этих целей.
А посмотреть например на substr, а точнее на его аналог для многобайтовых строк mb_substr();

$str = "Фриланс";
mb_substr($str, 3, null, "UTF-8");

Результат:
ланс
Ответ написан
Комментировать
slo_nik
@slo_nik Куратор тега PHP
Добрый вечер.
Из документации по Вашей ссылки
Эта функция возвращает строку str с удаленными из начала и конца строки пробелами. Если второй параметр не передан, trim() удаляет следующие символы:

" " (ASCII 32 (0x20)), обычный пробел.
"\t" (ASCII 9 (0x09)), символ табуляции.
"\n" (ASCII 10 (0x0A)), символ перевода строки.
"\r" (ASCII 13 (0x0D)), символ возврата каретки.
"\0" (ASCII 0 (0x00)), NUL-байт.
"\x0B" (ASCII 11 (0x0B)), вертикальная табуляция.

Значит Вам нужно другое решение. trim не применяется для разделения строки, тем более, что есть специальные функции для работы с многобайтовыми строками(utf8)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽