Проблема, с которой вы столкнулись, связана с тем, как веб-сервер (в данном случае Apache) обрабатывает PHP-скрипты и отправляет заголовки. При этом контент, который генерируется скриптом, должен быть правильно интерпретирован клиентами, такими как `curl` или `file_get_contents()`.
Вот несколько возможных причин и решений вашей проблемы:
1. **Пробелы и пустые строки перед открывающим тегом PHP**: Убедитесь, что в начале вашего PHP файла нет пробелов или пустых строк перед `<?`. Если они есть, это может привести к тому, что заголовок `Content-Type` не будет установлен правильно.
2. **Ошибки при выполнении скрипта**: Если в скрипте есть ошибки до этой строки, и они не обрабатываются, это может привести к тому, что вместо XML будет возвращён вывод ошибок PHP. Убедитесь, что у вас включена обработка ошибок для разработки, чтобы видеть возможные проблемы:
```php
error_reporting(E_ALL);
ini_set('display_errors', 1);
```
3. **Заголовки**: Убедитесь, что `header("Content-Type: text/xml; charset=windows-1251");` вызывается до вывода любого контента. Это критически важно для корректной работы.
4. **Правильные настройки Apache**: Проверьте конфигурацию вашего Apache на наличие директив, которые могут влиять на обработку PHP-файлов. Иногда может быть настроена неправильная обработка MIME-типов.
5. **Кеширование**: Если вы используете какие-либо системы кеширования, убедитесь, что у вас нет кеша, который может возвращать старую версию вашего файла.
6. **Проблемы с правами или доступностью файла**: Убедитесь, что `curl` или `file_get_contents()` могут получить доступ к файлу (например, через правильный URL) и что разрешения на файл или директорию позволяют это.
Если ничего из вышеперечисленного не работает, вы можете временно добавить логирование в ваш скрипт для отладки. Например, логируйте начало выполнения скрипта и текущее содержимое перед выводом, чтобы понять, где может быть проблема.
Также, если у вас есть доступ к логам сервера (например, error_log Apache), не забудьте проверить их на наличие каких-либо сообщений об ошибках, которые могут помочь выявить источник проблемы.