Здравствуйте.
Использую стандартный функционал генерации фидов с товарами 1С-Битрикса "Экспорт данных".
Фиди генирируются по крону, на выходе полуяается php файл в котором через echo выводятся xml.
Первые 10 строчик фида выглядет след образом:
<? $disableReferers = false;
if (!isset($_GET["referer1"]) || strlen($_GET["referer1"])<=0) $_GET["referer1"] = "yandext";
$strReferer1 = htmlspecialchars($_GET["referer1"]);
if (!isset($_GET["referer2"]) || strlen($_GET["referer2"]) <= 0) $_GET["referer2"] = "";
$strReferer2 = htmlspecialchars($_GET["referer2"]);
header("Content-Type: text/xml; charset=windows-1251");
echo "<"."?xml version=\"1.0\" encoding=\"windows-1251\"?".">"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog date="2024-11-19 17:27">
<shop>
Дело в том что файл начинается с
<?xml
в этом нет проблем так как выше указан тип документа
text/xml
Но иногда почему то игнорируется тип документа, и файл открывается по расширению как php, первые символы
<?
интерпритируются как открытие php кода, а все что далее соответственно как php.
И получается такая ситуация, что при скачивании через wgrt я вижу содержимое файла, а curl или file_get_contents() отдают пустой документ.
Я пересоздал документ, от стал корректно отдаваться любым способом, при этом начало документа ни как не изменилось. В обоих вариантах как на фрагменте кода выше.
Я как понимаю тут какой то глюк у apache? Подскажите что это и как вылечить, спасибо.