@Pseudoquater

Перестал работать код, который еще месяц назад нормально работал. В чем может быть проблема?

Файл semantic.txt - текстовой файл с кириллицей и латиницей, представляющий из себя 1тыс строк текста на кириллице. Задача кода - вывести 15 случайных строк из текстового файла, предварительно перемешав строки. Нижеприведенный код еще месяц назад работал нормально. Но, сейчас почему-то перестал работать. В чем может быть причина?

<?php
    $arr = file('https://site.ru/themes/semantic.txt');
    shuffle($arr);
    $res = array_slice($arr, 0, 15);
    foreach($res as $str){
      echo htmlspecialchars($str);
    }
    ?>


попробовал изменить версию PHP - стал отдавать строки в корявой кодировке. попытался переделать кодировку БД на utf8mb4_general_ci - тоже корявая кодировка. но в целом понятно, что проблема в кодировке... только не понятно что изменить надо...

В общем решили вопрос. Данил Бабаков предложил решение, которое исправило косяк:
<?php
$arr = file('https://site/semantic.txt');
shuffle($arr);
$res = array_slice($arr, 0, 15);
foreach ($res as $str) {
  $get  = mb_detect_encoding($str, array('utf-8', 'cp1251'));
  echo iconv($get, 'UTF-8', $str);
}
?>
  • Вопрос задан
  • 263 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы