Ich habe eine Datei, die eine Datei mit dem Namen sitemap.html
und in der Sitemap ist einschließlich, habe ich den folgenden Code:PHP werfen Fehler auf XML Starttag
<?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>
Alles in Ordnung scheint, aber ich erhalte eine Fehlermeldung 500, der sagt:
PHP Parse error: syntax error, unexpected 'version' (T_STRING) in sitemap.html on line 1
wie Sie sehen, ich bin <?xml
verwenden und nicht <?php
warum also versucht, es als PHP zu analysieren?
Zuerst dachte ich, es waren die magischen Zitate, die ein Problem verursachen, aber wenn ich einen var_dump von get_magic_quotes_gpc() mache, bekomme ich bool(false)
, so dass die magischen Zitate nicht einmal auf sind.
Auch in meinem php.ini
sehe ich, dass magic_quotes
OFF
ist.
Als Alternative es zu beheben, ersetzt ich meine erste Zeile mit dem folgenden:
<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
Aber ich bin immer noch neugierig über, was passiert.
Ich habe andere auf demselben Server (PHP Version 5.4.45) gehostete Websites, und ich habe nicht den PHP-Parse-Fehler auf der Sitemap der anderen Internet-Seiten ...
Jede Idee, was kommen könnte sein, verursacht diesen Fehler?
das ist keine magischen Zitate. es ist short_open_tags, was php trigger auf '' sowie ' php' macht. magische Anführungsstriche waren das (blödsinnige) "Automatisch alles für sql-Gebrauch entgehen" Geschäft. –
@MarcB Oh, ich wurde durcheinander gebracht .. Mein schlechtes! Ich denke jedoch nicht, dass das das Problem ist, denn wie ich bereits erwähnt habe, habe ich andere Websites, die genau den gleichen Code ausführen, und es funktioniert für die anderen Websites ... –
bedeutet nicht viel. php-Einstellungen können auf Webserver-Ebene pro Site überschrieben werden. Überprüfen Sie die Einstellung short_open_tag auf den funktionierenden/nicht funktionierenden Sites. –