ホームページ  >  記事  >  バックエンド開発  >  PHPの終了タグで冗長な空白行が出力され、XMLページでエラーが表示される場合のエラーの処理方法

PHPの終了タグで冗長な空白行が出力され、XMLページでエラーが表示される場合のエラーの処理方法

高洛峰
高洛峰オリジナル
2016-11-21 17:17:221170ブラウズ

PHPの公式ドキュメントでは、最後に?>終了タグを追加しない方がよいと指摘されています。しかし、私たちのプログラミング習慣と使用する IDE によって、php の終了タグが自動的に作成されます?>。通常、このマークを使用してもプログラムの動作には影響しません。特に初期の PHP4 では、この
タグが不適切に使用されても、最終的な出力には影響しません。しかし最近、PHPスクリプトの終了タグがページ上に表示されないという問題に遭遇しました。
まず、wapの最終出力はxmlファイルです。xmlファイル形式に問題があると結果を表示できません。何度も出力を確認したところ、別のテストマシンでも同じコードが問題なく表示されました。 firebug を通して見ると、最終的な出力

PHPの終了タグで冗長な空白行が出力され、XMLページでエラーが表示される場合のエラーの処理方法

主な理由は、firebug の分析により、xml が出力される前に空白行が表示されることがわかります。この空白行は、xml の出力後としては正常ではありません。元のファイルをすべて検索すると、空行や同様の関数ステートメントが出力されません。 ob_clean を使用して 1 行ずつデバッグすると、ファイルの 1 つがロードされた後、出力に空白行が表示されることがわかり、最終的に、php ファイルの末尾の ?> の後に 2 つの空白行があることがわかりました。 。空白行を削除すると問題は解決され、出力は正常になります。 PHPの終了タグで冗長な空白行が出力され、XMLページでエラーが表示される場合のエラーの処理方法その理由を知るために、インターネットで関連情報を検索したところ、codeIgniter 開発仕様には次の説明が記載されています:

PHP 終了タグ "?>" PHP アナライザーは PHP ではオプションです。 ただし、終了タグが使用されている場合、開発者、ユーザー、または FTP アプリケーションによって終了タグの後にスペースが挿入されると、冗長な出力、PHP エラー、表示できない後続の出力、および空白ページが発生する可能性があります。したがって、すべての PHP ファイルでは、PHP 終了タグを省略し、これがファイルの最後であることを示すコメントを挿入し、アプリケーションに関連してファイルを配置する必要があります。これは、ファイルが終了し、削除されていないことを確認するのに役立ちます。

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

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

デモ:
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;

インポートする必要があるシステムファイルsys_common.php

<?php

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

OK、インポートされたファイルを見つけて終了タグを削除すればOKです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。