【问题标题】:XML Sitemap Parsing Error With PHP使用 PHP 的 XML 站点地图解析错误
【发布时间】:2015-05-20 18:03:41
【问题描述】:

我正在使用 php 为谷歌提交创建站点地图 xml 文件,但我的代码中出现错误,即:

<?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 解析错误:格式不正确

错误似乎与代码的 &amp;title= 部分有关,但我真的需要在那里,因为这就是我的网址的外观 - 如何修复此错误?

【问题讨论】:

  • 我建议使用 XML 库(DOM 或 XMLWriter)来生成 XML,或者至少使用转义。

标签: php xml parsing sitemap


【解决方案1】:

在 XML 中,& 符号必须被实体替换,请改用 &amp;amp;

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
  • 1970-01-01
  • 2020-09-12
  • 1970-01-01
  • 2011-02-14
  • 1970-01-01
  • 2019-06-10
相关资源
最近更新 更多