Ваша проблема с парсингом XML может быть связана с несколькими факторами. Вот некоторые из них, которые стоит проверить:
1. **Изменения в структуре RSS**: Владелец RSS-канала мог изменить структуру файла (например, добавив новые теги или изменив формат), что может помешать корректному парсингу.
2. **HTTP-заголовки**: Возможно, сервер теперь требует определённые заголовки (например, `User-Agent`) для правильного ответа. Попробуйте задать заголовок `User-Agent` в вашем cURL-запросе, чтобы имитировать запрос из обычного браузера:
```php
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3');
```
3. **Проблемы с кодировкой**: Поставщик RSS мог изменить кодировку файла, и cURL не обрабатывает её должным образом. Вы можете попробовать указать кодировку вручную после загрузки содержимого.
4. **Ошибки в cURL**: Поскольку вы используете cURL, проверьте переменные `$err` и `$errmsg` после выполнения `curl_exec($ch)`. Если они не равны нулю, это указывает на ошибку. Это может дать представление о том, что именно идет не так.
5. **Ограничения по IP или частоте запросов**: Возможно, сервер установил ограничения на количество запросов с одного IP-адреса в определённый период времени. Если ваш скрипт выполняет много запросов, это может привести к блокировке.
6. **Кэширование на стороне сервера**: Проверьте, нет ли кэширования на стороне сервера, которое может вернуть разные результаты в зависимости от типа запроса.
7. **Файрволы или настройки безопасности**: В некоторых случаях сайт может блокировать запросы с незнакомых User-Agent или с определённых IP-адресов, что также стоит проверить.
Если ни один из этих пунктов не решает вашу проблему, вам может понадобиться связаться с владельцем RSS-канала, чтобы уточнить, были ли сделаны какие-либо изменения в настройках или ограничениях доступа.