PHP在XML开始标记上抛出错误

Chi*_*ung 6 php php-parse-error

我有一个文件包含一个名为sitemap.html和在站点地图中的文件,我有以下代码:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
    <url>
        <loc><?php echo SITE_URL . '/'; ?></loc>
        <changefreq>monthly</changefreq>
        <priority>1.00</priority>
    </url>

    <?php foreach ($this->data->content as $content): ?>
        <url>
            <loc><?php echo SITE_URL . $content->permalink; ?></loc>
            <lastmod><?php echo date("Y-m-d", $content->publish_date); ?></lastmod>
            <changefreq>monthly</changefreq>
            <priority><?php echo $content->sitemap_index; ?></priority>
        </url>
    <?php endforeach; ?>
</urlset>
Run Code Online (Sandbox Code Playgroud)

一切似乎都没问题,但我收到的错误500就是说:

PHP解析错误:语法错误,第1行的sitemap.html中的意外"版本"(T_STRING)

正如你所看到的,我正在使用<?xml而不是<?php为什么它试图将其解析为PHP?

起初,我认为这是导致问题的神奇引号,但是当我执行get_magic_quotes_gpc()的var_dump时,我得到bool(false)了神奇的引号甚至都没有.

此外,在我的php.ini,我看到magic_quotesOFF.

作为修复它的替代方法,我用以下内容替换了我的第一行:

<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
Run Code Online (Sandbox Code Playgroud)

但我仍然对正在发生的事感到好奇.

我有其他网站托管在同一台服务器上(PHP版本5.4.45),我没有在其他网站的站点地图上得到PHP Parse Error ...

知道可能导致此错误的原因是什么?

Ete*_*al1 6

你应该检查short_open_tag选项.我看到它的方式,PHP将<?你的部分<?xml视为php开放标记并生成错误.