Изменить синтаксис, сохранить отступы
if($news) {
$Sitemap .=" <priority>{$v[1]}</priority>\n";
$Sitemap .=" <changefreq>weekly</changefreq>\n";
$Sitemap .=" <lastmod>".date('Y-m-d', $r['time_upd'])."</lastmod>\n";
}
Возможно так
if($news)
$Sitemap .=" <priority>{$v[1]}</priority>\n <changefreq>weekly</changefreq>\n <lastmod>".date('Y-m-d', $r['time_upd'])."</lastmod>\n";
Вопрос в том, возможно ли как во втором случаи, только каждый раз с новой строчки и сохранить отступ в начале чтобы на выходе читабельный вид имел ситемап.
Единственное, вложенность условий может быть 5-10 и тд. Можно сделать так
if($news)
$Sitemap .=" <priority>{$v[1]}</priority>
<changefreq>weekly</changefreq>
<lastmod>".date('Y-m-d', $r['time_upd'])."</lastmod>\n";
Тогда в php будет плохой вид для чтения кода...
Ответы (2 шт):
Писать XML в PHP-файле — не самая лучшая идея. Гораздо удобнее писать PHP-вставки в XML-файле.
<priority><?= htmlspecialchars($priority) ?></priority>
<changefreq>weekly</changefreq>
<lastmod><?= htmlspecialchars($lastmod) ?></lastmod>
Положите такой код в отдельный файл sitemap.pxml и подключите его через require.
Генерация XML/HTML/XHTML часто вызывает трудности у новичков, поэтому я написал небольшую статью на эту тему. Почитайте.
Если вы уже знакомы с composer'ом и ООП, то вы можете использовать какую-нибудь готовую библиотеку для генерации сайтмапа. Проблема отступов в этом случае не актуальна, вы просто заменяете xml на вызовы соответствующих методов.
Такой подход позволит решить задачу максимально быстро (в плане затрат на кодирование), но лишит вас удовольствия разобраться с тем, что умеет php и с какими трудностями сталкиваются крутые разработчики типа автора либы.