Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建PHP站点地图XML脚本_Php_Xml_Sitemap - Fatal编程技术网

创建PHP站点地图XML脚本

创建PHP站点地图XML脚本,php,xml,sitemap,Php,Xml,Sitemap,我每天都会添加一个数据库驱动的网站&我想用php为google制作一个xml站点地图,但我真的不确定如何做到这一点。使用我习惯的代码,我创建了以下内容: <?php $get_articles_sql = "SELECT * FROM articles ORDER BY added DESC"; $get_articles_res = mysqli_query($con, $get_articles_sql); while($article = mysqli_fetch_assoc($ge

我每天都会添加一个数据库驱动的网站&我想用php为google制作一个xml站点地图,但我真的不确定如何做到这一点。使用我习惯的代码,我创建了以下内容:

<?php
$get_articles_sql = "SELECT * FROM articles ORDER BY added DESC";
$get_articles_res = mysqli_query($con, $get_articles_sql);
while($article = mysqli_fetch_assoc($get_articles_res)){
    $article_id = $article["id"];
    $article_title = $article["title"];
    $article_added = $article["added"];
    $article_date = date('Y-M-D', strtotime($article_added));

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

    $list_articles .= "

        <url>
            <loc>http://www.website.com/article.php?id=$article_id&title=$article_url_title</loc>
            <lastmod>$article_date</lastmod>
            <changefreq>monthly</changefreq>
            <priority>0.8</priority>
        </url>

    ";
?>
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://www.website.com</loc>
      <lastmod>2005-01-01</lastmod>
      <changefreq>daily</changefreq>
      <priority>1.0</priority>
   </url>
   <?php echo $list_articles; ?>
</urlset>

http://www.website.com
2005-01-01
每日的
1

但是,这会在
上返回一个错误。您的服务器可能启用了短标记,从而导致


看起来你的while循环缺少了结束括号,但我认为这仅仅是一个输入错误。

提交网站地图后,谷歌告诉我,
我们无法阅读你的网站地图。它可能包含我们无法识别的条目。请在重新提交之前验证您的网站地图。
。此错误出现在
$article\u url\u title=preg\u replace('/[^a-zA-Z0-9\%\[\]\.\(\)%和-]/s','','',$article\u title)行。有什么问题?很难说。通过查看XML进行调试会更容易,因为这是Google所看到的。当我在localhost中加载页面时,所有内容都正确显示,Firefox调试器没有显示任何问题。但是控制台显示
HTML文档的字符编码未声明
看起来您需要发送XML内容类型:
标题(“内容类型:text/xml”)
echo '<?xml version="1.0" encoding="UTF-8"?>'
?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">