为什么我不能在XML文件中包含PHP?

时间:2014-01-30 14:47:22

标签: php html xml apache

我有以下XML站点地图结构:

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

    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

        <url><loc>http://www.example.com/</loc></url> 

    </urlset>

如何包含具有以下内容的“<?php include ("assets/includes/menu.inc"); ?>”:

<li><a href="index.php">Home</a></li>
<li class="subMenu"><a href="gallery.php">Gallery</a>
    <ul>
        <li><a href="page1.php">Page</a></li>
        <li><a href="page2.php">Page2t</a></li>
    </ul>
</li>
<li><a href="contact.php">Contact</a></li>

我想做什么?我正在尝试自动生成/更新我的站点地图,所以我想将我的菜单“主要链接”包含在XML中,然后使用CSS“在选择器之前和之后“在每个<url><loc><a></a>之后添加标记</url></loc>,创建:<url><loc>http://www.example.com/</loc></url>这就是站点地图基本上构建的。

关于如何使这项工作的任何想法?

2 个答案:

答案 0 :(得分:0)

您必须在PHP中包含XML,而不是相反。

您的PHP文件必须具有XML标头内容类型:

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

然后你在php文件中显示xml,如下所示:

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

    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

        <url><loc>http://www.example.com/</loc></url> 

    </urlset>';

请注意,您不能只在网站地图中包含html。您必须使用特定标记格式化链接,这可以通过机器人理解。

您的网站地图网址将类似于http://www.mysite.com/sitemap.php 如果站点地图的扩展对您来说非常重要,您可以获得带有URL重写的.xml。 您还可以在robots.txt中指定站点地图的网址。

Sitemap: http://www.example.com/sitemap.php

在此网站上查看更多示例: http://www.sitemaps.org/protocol.html#submit_robots

我不确定您尝试使用CSS实现什么,因为要显示sitemap,但通常使用XSL设置xml样式

答案 1 :(得分:0)

服务器将.xml .html .css文件作为带有标记的简单文本读取,为了使用php你需要有一个.php(使用默认设置,你可以修改apache来读取每个文件作为php如果你想要 - 但这没有任何意义)并且说得好,如果你想要任何暗示php的东西,你需要制作一个生成你需要的文件的php文件,而不是相反。

一个文件具有.php扩展名的事实告诉服务器他必须将该文件解析为php,因此解析器启动并且只运行下面的数据,而其他所有内容都保持不变。