Перстал работать код. В чем может быть ошибка?

Файл 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);
}
?>

Ответы (1 шт):

Автор решения: Eugene Morrison

Не могу предположить, что у вас там, но тем не менее, у меня работает как вы описали. Выводит 15 строк. Cкорее всего, кодировка файла изменена, попробуйте так:

<?php
$arr = file('http://localhost/semantic.txt');
shuffle($arr);
$res = array_slice($arr, 0, 15);
foreach($res as $str){
    $tempStr = mb_convert_encoding($str, 'UTF-8', mb_detect_encoding($str));
    echo htmlspecialchars($tempStr, ENT_NOQUOTES, 'UTF-8');
}
?>
→ Ссылка