trim обрезает кириллическую букву

Тема в разделе "PHP", создана пользователем alexz15, 28 ноя 2013.

Статус темы:
Закрыта.
Модераторы: latteo
  1. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    190
    PHP:
    header('Content-Type: text/html; charset=utf-8');

    $word 'сокол';
    echo 
    trim($word'«»');
    на выходе "соко". Это наблюдается с буквой "л" в конце, возможно есть и другие буквы. Почему так?
     
    Последнее редактирование: 28 ноя 2013
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.451
    Симпатии:
    1.244
    попробуй для такой обрезки
    PHP:
    function mb_trim($string$trim_chars '\s'){
      return 
    preg_replace('/^['.$trim_chars.']*(?U)(.*)['.$trim_chars.']*$/u''\\1',$string);
    }
    источник: http://php.net/manual/ru/ref.mbstring.php
     
    alexz15 нравится это.
  3. snaze

    snaze Писатель

    Регистр.:
    24 июн 2008
    Сообщения:
    5
    Симпатии:
    2
    Потому что trim работает с кодировкой который указан по умолчанию в PHP например WINDOWS-1251. А у вас текст как понял в UTF-8
    Попробуйте это http://www.phpkode.com/source/p/php-utf-8/utf8/trim.php
     
Статус темы:
Закрыта.