微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用PHP创建XML站点地图

我正在尝试创建一个自动更新的站点地图.我已经做了类似于我的RSS提要的内容,但是这个网站地图拒绝工作.你可以在 http://designdeluge.com/sitemap.xml看到它,我认为主要的问题是它不能识别PHP代码.这里是完整的来源:
<?PHP 


include 'includes/connection.PHP';

header("Content-type: text/xml");

echo '<?xml version="1.0" encoding="UTF-8" ?>';

?>

<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">

    <url>
        <loc>http://designdeluge.com/</loc>
        <lastmod>2010-04-20</lastmod>
        <changefreq>weekly</changefreq>
        <priority>1.00</priority>
    </url>

    <url>
        <loc>http://designdeluge.com/about.PHP</loc>
        <lastmod>2010-04-20</lastmod>
        <changefreq>never</changefreq>
        <priority>0.5</priority>
    </url>

    <?PHP

    $entries = MysqL_query("SELECT * FROM Entries");

    while($row = MysqL_fetch_assoc($entries)) {
    $title = stripslashes($row['title']);
    $date = date("Y-m-d",strtotime($row['timestamp']));

    echo "

    <url>
        <loc>http://designdeluge.com/".$title."</loc>
        <lastmod>".$date."</lastmod>
        <changefreq>never</changefreq>
        <priority>0.8</priority>
    </url>";

 } ?>

</urlset>

问题是动态网址(例如从数据库提取的URL)未生成,并且站点地图将无法验证.谢谢!

编辑:现在,我只是试图让代码本身工作.我在本地测试服务器上设置为PHP文件.上面的代码正在被使用.现在,屏幕上或源文件中都没有显示任何内容.我在想我做了一个语法错误,但我找不到任何东西.任何和所有的帮助是赞赏!

编辑2:好的,我把它整理出来了.显然,我不得不用PHP回应xml声明.最后的代码贴在上面.谢谢你的帮助!

如果您查看生成的sitemap.xml(例如,在浏览器中使用视图源),您将看到:
<?PHP header('Content-type: text/xml'); ?>
<?xml version="1.0" encoding="UTF-8" ?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http:/
...

输出中存在的<?PHP表示不会解释PHP代码.
这可能是因为您的网络服务器不能将.xml识别为应包含PHP代码文件的扩展名.

至少两个可能的解决方案:

>重新配置您的服务器,所以XML文件通过PHP解释器(可能不是一个好主意:这可能会导致现有文件的问题!)
>将您的站点地图的扩展名更改为sitemap.PHP,以便您的服务器进行解释.

我会添加一个解决方案:

一个sitemap.PHP文件,其中包含代码
>并使用RewriteRule,所以sitemap.xml URL实际上指向sitemap.PHP文件

这样,您将会有sitemap.xml网址,这是很好的(必需的),但是由于代码将在sitemap.PHP中,所以会被解释.

Apache’s mod_rewrite.

原文地址:https://www.jb51.cc/php/140192.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐