XserverXserverSupportDomainDomainSupportMany-KingMany-King Support

XHTML における「XML 宣言」の方法

この記事へのリンク ブックマークに追加する
Print This Post Print This Post

XHTML 1.0 では、XML 宣言することが強く求められる!という事は良く知られているようですが、Internet Explorer 6.0 (IE6.0) が、それをカバーしていないため(エラーになったり、ページ表示できなかったり・・・)、宣言することを避けているサイトが結構ありますよね!

しかし、PHP が稼動するレンタルサーバでは、これを簡単に解決してくれます。詳細は、「BirDesign::IE6でのXML宣言の問題と回避方法」という投稿記事に示されています。

本サイトでも上記の投稿記事を参考に header.php の最上位行に下記のコードを挿入しました。

<?php
$ua = $_SERVER['HTTP_USER_AGENT'];
if (!(ereg(”Windows”,$ua) && ereg(”MSIE”,$ua)) || ereg(”MSIE 7″,$ua)) {echo ‘<?xml version=”1.0″ encoding=”‘ .get_settings(’blog_charset’) .’”?>’ . “\n”;
}
?>

上記のコード中、<?php と ?>の前後に、余計なスペース・改行などは入れないことが注意点くらいで、単純に挿入するだけで、XHTML 1.0 では、XML 宣言することができるようになります。上記のコードは、訪問者のブラウザが Windows の IE 以外だった場合に、XML宣言をするようになっているそうです。



Trackback: http://www.nakui.biz/index.php/2007/05/29/27/trackback

コメント:3個

  1. masuより、 2008年06月13日:

    はじめまして、今大変困っていて教えていただきたいのですがXML 宣言で
    ( header.php の最上位行に下記のコードを挿入しました。)とありますが
    header.phpは自分でファイルを作成すれば良いのですか?コードを何処に挿入すれば良いのかわかりません、宜しくお願い致します。

  2. Chaより、 2008年06月13日:

    masu様
    私は、専門家ではありませんから、ご指導するほどではありませんからもっとウェブページに知識のある方にお聞きするのが良いとは思うのですが・・・

    私なりにご回答いたしますと、上記は PHP のコードですので、html の拡張子だと機能しません。よって、ウェブページを PHP の拡張子に変更して、ページのとにかく真上(最上位行)に挿入する必要があります。PHP の利用に関しては、サーバーによっては利用できない場合もありますので注意が必要です。

    ちなみに header.php は、WordPress の場合、テーマというデザインテンプレートがあり、その中にあるファイルで、その場合でも最上位行に挿入する必要があります。

    私で回答できるのはこの範囲ですが・・・

  3. masuより、 2008年06月14日:

    なるほど分かりました、どうもありがとうございます。

コメントをどうぞ

コメントスパムを排除するために、投稿して頂いたコメントは、本サイト管理人の承認作業が完了してからの公開になりますことをご了解下さいませ。