За последние 24 часа нас посетили 222216 программистов и 2194 робота. Сейчас ищет 1891 программист ...

Непонятная проблема

Тема в разделе "PHP для новичков", создана пользователем Vovchik48, 11 окт 2012.

  1. Vovchik48

    Vovchik48 Активный пользователь

    С нами с:
    30 мар 2012
    Сообщения:
    57
    Симпатии:
    0
    Объясните с чем может быть связана такая проблема: у мене есть какая то строка которую я хочу разбить на масив, и когда я вывожу его, получаю крякозябры.
    Пример кода:
    Код (Text):
    1. $str = "Строка";
    2. $str_arr = str_split($str);
    3. print_r($str_arr);
    И вот что я получаю:
    Код (Text):
    1. Array ( [0] => � [1] => � [2] => � [3] => � [4] => � [5] => � [6] => � [7] => � [8] => � [9] => � [10] => � [11] => � )
    Зарание спасибо!
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    Код (Text):
    1.  
    2. <?php
    3. function str_split_unicode($str, $l = 0) {
    4.     if ($l > 0) {
    5.         $ret = array();
    6.         $len = mb_strlen($str, "UTF-8");
    7.         for ($i = 0; $i < $len; $i += $l) {
    8.             $ret[] = mb_substr($str, $i, $l, "UTF-8");
    9.         }
    10.         return $ret;
    11.     }
    12.     return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
    13. }
    14.  
    15.  
    16. $s = "тут наша строка";
    17.  
    18. print_r(str_split($s, 3));
    19. print_r(str_split_unicode($s, 3));
    20. ?>
    Код (Text):
    1.  
    2. Array
    3. (
    4.     [0] =&gt; т�
    5.     [1] =&gt; �т
    6.     [2] =&gt;  н
    7.     [3] =&gt; а�
    8.     [4] =&gt; �а
    9.     [5] =&gt;  с
    10.     [6] =&gt; т�
    11.     [7] =&gt; �о
    12.     [8] =&gt; к�
    13.     [9] =&gt; �
    14. )
    15. Array
    16. (
    17.     [0] =&gt; тут
    18.     [1] =&gt;  на
    19.     [2] =&gt; ша
    20.     [3] =&gt; стр
    21.     [4] =&gt; ока
    22. )
     
  3. Vovchik48

    Vovchik48 Активный пользователь

    С нами с:
    30 мар 2012
    Сообщения:
    57
    Симпатии:
    0
    Dmitriy A. Arteshuk, спасибо за помощь, розобрался во всем кроме того, что значит "//u"?
     
  4. Gold Dragon

    Gold Dragon Активный пользователь

    С нами с:
    30 сен 2012
    Сообщения:
    306
    Симпатии:
    2
    Адрес:
    Тамбов
  5. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    это для utf8