加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

使用PHP创建XML站点地图

发布时间:2020-05-25 09:35:25 所属栏目:PHP 来源:互联网
导读:我正在尝试创建一个将自动更新的站点地图.我已经做了类似于我的RSS提要的内容,但是这个网站地图拒绝工作.你可以在 http://designdeluge.com/sitemap.xml看到它,我认为主要的问题是它不能识别PHP代码.这里是完整的来源: ?php include includes/connection.php

我正在尝试创建一个将自动更新的站点地图.我已经做了类似于我的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.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读