У вас же записывает в пустой файл sitemap.xml содержимое переменной $header а именно
Код:
$header = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n"
В файле sitemap.xml появляется строки
Код:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
Но после этих строк у нас должна формироваться карта в плане
Код:
<url>
<loc>http://reger.ru/saratov/search/nedvizhimost/prodazha-nedvizhimosti/prodazha-kvartir/novostroyki/odnokomnatnaja-kvartira-15.html</loc>
<lastmod>2017-01-04</lastmod>
</url>
И в конце закрывающий тег urlset, то есть если даже у вас нет, что формировать, то в нормальном случае у вас должен создаться законченный код с тегом закрытия.
Код:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
</urlset>
В вашем случае у вас формируется sitemap.xml значит права и пути соответствуют и ошибки в этом нет, но в файл записывается только содержимое $header и всё! Даже закрывающий тег не пишет. Поэтому при обрашениие к файлу xml у вас и ошибка. Файл xml неправильно собран. Копайте код после 77 строки. попробуйте без строки формирования карты, залочьте или удалите временно с строки с 77 до fwrite($f, '</urlset>'); У меня это 91 строка. Эта строка как раз записывает в файл закрывающий тег. ну и посмотреть файл xml правильно соберётся или нет.
Кстати какие рабочие файлы вы берёте с других сайтов? Три файла?