Heim  >  Artikel  >  Backend-Entwicklung  >  So behandeln Sie den Fehler bei der Ausgabe redundanter Leerzeilen in schließenden PHP-Tags und der Anzeige von Fehlern auf XML-Seiten

So behandeln Sie den Fehler bei der Ausgabe redundanter Leerzeilen in schließenden PHP-Tags und der Anzeige von Fehlern auf XML-Seiten

高洛峰
高洛峰Original
2016-11-21 17:17:221168Durchsuche

In der offiziellen PHP-Dokumentation wurde darauf hingewiesen, dass es am besten ist, das schließende Tag ?> nicht hinzuzufügen. Aber unsere Programmiergewohnheiten und die von uns verwendete IDE erstellen automatisch das schließende PHP-Tag
?>. Die Verwendung dieses Zeichens hat unter normalen Umständen keinen Einfluss auf den Betrieb des Programms. Insbesondere im frühen PHP4 hat die unsachgemäße Verwendung dieses
-Tags keinen Einfluss auf die endgültige Ausgabe. Allerdings bin ich kürzlich auf das Problem gestoßen, dass der End-Tag des PHP-Skripts nicht auf der Seite angezeigt werden kann.
Zuallererst ist die endgültige Ausgabe von wap eine XML-Datei. Wenn ein Problem mit dem XML-Dateiformat vorliegt, können die Ergebnisse nicht angezeigt werden. Nach mehrmaliger Überprüfung der Ausgabe wurde festgestellt, dass kein
Problem vorliegt und derselbe Code problemlos auf einem anderen Testcomputer angezeigt wurde. Durch Firebug betrachtet, ist die endgültige Ausgabe

So behandeln Sie den Fehler bei der Ausgabe redundanter Leerzeilen in schließenden PHP-Tags und der Anzeige von Fehlern auf XML-Seiten

So behandeln Sie den Fehler bei der Ausgabe redundanter Leerzeilen in schließenden PHP-Tags und der Anzeige von Fehlern auf XML-Seiten

Der Hauptgrund ist, dass durch die Firebug-Analyse festgestellt werden kann, dass zuvor eine Leerzeile angezeigt wird Das XML wird ausgegeben. Die Ausgabe von Leerzeilen als XML ist abnormal. Beim Durchsuchen aller Originaldateien werden keine Leerzeilen oder ähnliche Funktionsanweisungen ausgegeben. Beim zeilenweisen Debuggen von ob_clean wurde festgestellt, dass nach dem Laden einer der Dateien eine Leerzeile in der Ausgabe erschien. Schließlich wurde festgestellt, dass nach dem ?> am Ende der PHP-Datei zwei Leerzeilen vorhanden waren . Wenn Sie die Leerzeilen entfernen, wird das Problem behoben und die Ausgabe wird normal sein.
Um den Grund herauszufinden, habe ich im Internet nach relevanten Informationen gesucht und die CodeIgniter-Entwicklungsspezifikation gibt die folgende Erklärung:
PHP-Endtag „?>“ Der PHP-Analysator ist in PHP optional. Wenn jedoch ein schließendes Tag verwendet wird, kann jedes Leerzeichen, das von einem Entwickler, Benutzer oder einer FTP-Anwendung nach dem schließenden Tag eingefügt wird, zu redundanter Ausgabe, PHP-Fehlern, nachfolgender Ausgabe, die nicht angezeigt werden kann, und einer leeren Seite führen. Daher sollten alle PHP-Dateien das schließende PHP-Tag weglassen und einen Kommentar einfügen, um anzugeben, dass dies das Ende der Datei ist, und um die Datei relativ zur Anwendung zu lokalisieren. Dadurch können Sie sicherstellen, dass die Datei beendet ist und nicht gelöscht wurde.

 // 错误的写法 INCORRECT
<?php echo "Here&#39;s my code!"; ?>

// 正确的写法 CORRECT:
<?php echo "Here&#39;s my code!";

Demo:

test.php
<?php
header("Content-type:text/xml");
include_once(&#39;sys_common.php&#39;);

echo&#39;<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[测试]]></title>
<link><![CDATA[http://baidu.com]]></link>
<description><![CDATA[测试空行输出]]></description>
<language><![CDATA[zh-CN]]></language>
<pubDate><![CDATA[18.11.2016 14:54:02]]></pubDate>
<lastBuildDate><![CDATA[18.11.2016 14:54:02]]></lastBuildDate>
</channel>
</rss>&#39;;
// exit;

Die Systemdatei sys_common.php, die importiert werden muss

<?php

  // do someing
  // 注意:后边这个闭合标签需要去掉,这样上边引入的时候输出xml就不会出错了。
  // ?>

OK, suchen Sie die importierte Datei und entfernen Sie das Schließen markieren und es ist OK!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn