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

前端之家收集整理的这篇文章主要介绍了PHP在XML开始标记上抛出错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个文件,其中包含一个名为sitemap.html的文件,在sitemap中,我有以下代码
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <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">
  3. <url>
  4. <loc><?PHP echo SITE_URL . '/'; ?></loc>
  5. <changefreq>monthly</changefreq>
  6. <priority>1.00</priority>
  7. </url>
  8.  
  9. <?PHP foreach ($this->data->content as $content): ?>
  10. <url>
  11. <loc><?PHP echo SITE_URL . $content->permalink; ?></loc>
  12. <lastmod><?PHP echo date("Y-m-d",$content->publish_date); ?></lastmod>
  13. <changefreq>monthly</changefreq>
  14. <priority><?PHP echo $content->sitemap_index; ?></priority>
  15. </url>
  16. <?PHP endforeach; ?>
  17. </urlset>

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

PHP Parse error: Syntax error,unexpected ‘version’ (T_STRING) in sitemap.html on line 1

正如你所看到的,我正在使用<?xml而不是&?; PHP,为什么它试图将它解析为PHP? 起初,我认为这是导致问题的魔术引号,但是当我执行var_dump为get_magic_quotes_gpc()时,我得到bool(false)所以魔术引号甚至都没有.

另外,在我的PHP.ini中,我看到magic_quotes是OFF.

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

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

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

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

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

你应该检查short_open_tag选项.我看到它的方式,PHP看到<?您的<?xml的一部分作为PHP打开标记生成错误.

猜你在找的PHP相关文章