За последние 24 часа нас посетили 20603 программиста и 857 роботов. Сейчас ищут 519 программистов ...

Некорректно выводятся русские символы из массива

Тема в разделе "PHP для новичков", создана пользователем hardway, 13 июн 2018.

  1. hardway

    hardway Новичок

    С нами с:
    12 июн 2018
    Сообщения:
    24
    Симпатии:
    0
    1) Я заполняю массив символами из строки
    2) Я удаляю каждый чётный элемент из массива
    3) Я вывожу получившийся результат, но почему-то с русскими символами никак не дружит, а с любыми другими всё ОК, хотя с кодировкой всё тоже ОК, даже через .htaccess прописал. Хочу понять причину всего этого
    PHP:
    1. <?php
    2.     if (isset($_POST['sub'])) {
    3.         $text = $_POST['text'];
    4.         if ($text !== '') {
    5.             $array = [];
    6.             for ($i = 0; $i < mb_strlen($text); $i++)
    7.                 $array[] = $text[$i];
    8.             for ($i = 0; $i < count($array); $i += 2)
    9.                 unset($array[$i]);
    10.             foreach ($array as $v) echo $v;
    11.         }
    12.     }
    13. ?>
    HTML:
    1. <!DOCTYPE html>
    2.     <meta charset="UTF-8">
    3.     <title>Document</title>
    4. </head>
    5.     <form action="index.php" method="post">
    6.         <textarea name="text" cols="30" rows="10"></textarea>
    7.         <p>
    8.             <input type="submit" name="sub">
    9.         </p>
    10.     </form>
    11. </body>
    12. </html>
     

    Вложения:

  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.787
    Симпатии:
    646
    Кириллические буквы в UTF двумя байтами кодируются. А вообще лучше даже на это не полагаться и выделять символы так: mb_substr($text,$i,1).
     
    hardway нравится это.
  3. hardway

    hardway Новичок

    С нами с:
    12 июн 2018
    Сообщения:
    24
    Симпатии:
    0
    Всё понял, спасибо!