Ошибка синтаксического анализа XML-файла Sitemap с переполнением стека

Я использую php для создания XML-файла Sitemap для отправки в Google, но в моем коде появляется ошибка:

<?php
$get_posts_sql = "SELECT * FROM posts ORDER BY added DESC";
$get_posts_res = mysqli_query($con, $get_posts_sql);
while($post = mysqli_fetch_assoc($get_posts_res)){
$post_id = $post["id"];
$post_title = $post["title"];
$post_added = $post["added"];
$post_date =    date('Y-m-d', strtotime($post_added));

$post_url_title = preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-]/s', '', $post_title);
$post_url_title = strtolower(str_replace(" ","-",$post_url_title));

$list_posts .= "
<url>
<loc>http://fulldistortion.co.uk/post.php?id=$post_id&title=$post_url_title</loc>
<lastmod>$post_date</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>

";
}
?>

Когда я запускаю страницу в своем браузере, я получаю:

Ошибка синтаксического анализа XML: неправильно сформирован

Ошибка, кажется, с &title= раздел кода, но мне действительно нужно это там, как это выглядит мой URL — Как я могу исправить эту ошибку?

1

Решение

В XML амперсанды должны быть заменены сущностью, используйте &amp; вместо.

<loc>http://fulldistortion.co.uk/post.php?id=$post_id&amp;title=$post_url_title</loc>
^^^^^
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]