当サイトはIT系を中心に多彩なジャンルのニュースを扱うブログです。国内だけでなく海外のトレンドも追っていきます!

サイトをphp化してXML宣言する方法、サイトが表示されなくなることの解決法

スポンサード リンク

先日、とあるサイトをphpで作りました。

phpで作ると言っても、ただ単に拡張子を「.php」にして作るだけです。

こうすれば、phpのインクルードタグを使えるので、普通のウェブサイトでもMovable Type(MT)で作ったブログサイトのように、共通部分を外部化して読み込ませることができます。

たとえば、メニューとか。

僕はタグはすべて手打ちなので、100ページあるサイトのメニューを修正する場合、インクルードを使わなければ100ページ分のメニューを変更する必要があります。

この作業はほんとに辛いです・・途中で泣きたくなるほどです・・。

でも、phpのインクルードを使えば、外部化したファイルだけを修正すれば、すべてのページに反映されますから。

つまり、静的なHTMLサイトから動的なPHPサイトになるということですね。

でも、ウェブサイトをphp化するにあたり、1つの問題にぶち当たりました。

それが、XML宣言です。

XML宣言とは、HTMLファイルの先頭に書く記述のことです。

こんな風に書きます。

<?xml version="1.0" encoding="utf-8"?>

もとは、その文書がXML文書であることを明確に示す文字列ですが、XHTMLでサイト製作する際にも書くことが推奨されているというか、ないと文法チェックでツっこまれるので僕は入れるようにしています。

「xml version="1.0"」がXMLのバージョン、「encoding="utf-8"」が使用する文字コードです。

使用する文字コードが「Shift_JIS」の場合なら「encoding="Shift_JIS"」となります。

XML宣言は、XHTMLファイルの文字コードが「utf-8」か「utf-16」以外で、かつWWWサーバーがcharsetパラメータで文字コードを送信しない場合には記述が必須となります。

僕の場合は、最近は次のような感じでサイトを作っています。

・とりあえず、XML宣言しとく
・文字コードは「utf-8」
・DOCTYPE宣言は「Strict DTD」

なので、HTMLファイルの出だしはこんな感じになります。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>


ただ、php化するとXML宣言の出だしの「<?」がひっかかってしまうようで、サイトが真っ白になります。

つまり、何も表示されないんです。ソースを見ても、何も書かれていません。真っ白です。

こんな感じで。

090909_1.gif

そこで、この現象を解決するために、XML宣言をHTMLファイルに直接書く形ではなく、phpで文字列を出力する形をとります。

PHPで文字列を出力すると、関数の「print」が思い浮かぶかもしれませんが、ここでは同じ動作をする「echo」を使います。

「print」と「echo」の違いの1つに、「値を返すかどうか」ということがあります。

「print」は値を返しますが、「echo」は値を返しません。その分、若干「echo」の方が速度が速いという声もあります。

まぁ、今回の場合では「print」を使おうが、「echo」を使おうが、速度の違いはほとんど認識できないでしょうが。。

「echo」を使ってXML宣言の文字列を書き出すには次のように書きます。

<?php echo '<?xml version="1.0" encoding="utf-8"?>' ?>

ただ、これだとXML宣言とDOCTYPE宣言が下記のようにHTMLソース上で改行されません。

090909_2.gif

まぁ、改行されなくても、別に問題ないのですが、次のように改行命令も書いておけばHTMLソース上でもちゃんと改行されます。

<?php echo '<?xml version="1.0" encoding="utf-8"?>'."\n" ?>

090909_3.gif

このように、XML宣言を直接HTMLファイルに書くのではなく、phpコマンドの「echo」を使って、XML宣言を文字列として書き出すようにすれば、サイトをphp化してXML宣言することができます。

Movable Type(MT)をPHP化してXML宣言する時も、この方法を使います。

あと、Macintoshを使っている人は、エディタによっては改行命令の「\(バックスラッシュ)」が入力できないかもしれません。

そんな時はJeditを使うといいですよ。


参考:
[PHP-users 1453] echo()とprint()の違いについて

"print"と"echo"の違いを教えてください - 教えて!goo

スポンサード リンク

トラックバック

この記事のトラックバックURL:
http://www.nextglobaljungle.com/_cgi/mt/mt-tb.cgi/1827

※トラックバックには当サイトの該当記事へのリンクが必要になります。
詳細はトラックバックの注意点をお読み下さい。

このカテゴリーの最新記事(5記事)
このブログの最新記事(5記事)
【ホテル・温泉 ランキング!】

日本の人気ホテル・温泉

日本のホテル 宿泊客の満足度調査ランキング

人気温泉地ランキングTOP20

年末年始に向けて、どうせ行くなら評判の良いところへ!

ホテルの予約なら「一休」、温泉の予約なら「じゃらん」が安くてオススメ!

【映画好きの人にオススメ!】

DVDをネットで借りてポストへ返す

ネットで借りて、ポストへ返す
僕も使っているオンライン宅配DVDレンタルサービス。

検索で一発で探せるので、お目当ての映画を探すのに時間がかかったり、返却が面倒といったイライラを解消できます!

時間を節約したい人にオススメ。

【PCで携帯サイトを見る!】

PCで携帯サイトを見る

パソコンで携帯サイトを閲覧できるPC用ブラウザ「Lunascape」(無料)
ITの世界では珍しい日本発の国産ブラウザ。

【情報の量から質の時代へ】

雑誌 Newsweek

ニューズウィーク 定期購読
情報社会から知識社会へ。日本のマーケットはアメリカのマーケットに連動しています。

あの優秀な人も毎週チェックしている。定期購読なら1冊280円に!

人気ビジネス雑誌ランキング

ビジネス雑誌 比較ランキング
人気ビジネス雑誌7誌を比較。

【一番堅実で効果が高いSEO対策】

一番堅実で効果が高いSEO対策

ディレクトリ登録でアクセスアップ 堅実SEO対策
アクセスが来ないウェブサイトをアクセスがたくさん来るウェブサイトに変える一番手堅いSEO対策。

中長期で考えると一番費用対効果が高い方法です。

【サイトで動画を使って売上アップ】

写真数枚で動画を作る

写真・画像を使うCM動画作成ソフト
誰でも簡単に5分で写真数枚であっという間にCM動画を作れる動画制作ソフト。

著作権フリーの音楽と写真を使い放題。

【ウェブサイトも売る時代に】

サイト売買

ホームページを売りたい、売却したい!サイト売買査定
不要になった洋服をフリーマーケットで売るように、ホームページも売る時代になりました。

【オススメ!レンタルサーバー】

当サイトは、ロリポップ!レンタルサーバーにブログソフトウェアMovable Typeをインストールしています。



インタビュー動画で英語に対する考え方を述べています。必見!

BLOG カテゴリ
ブックマーク数

このページのトップへ