PHP 動的なHTML(XHTML)の生成と保存
AICA研究室 國分 元樹
2009年11月10日
2009年11月10日
こんにちは、今日は変数を元に
動的にWEBページを生成して保存する方法を説明しますね。
このスクリプトを実行すると、
生成されたXHTMLを$pageNameの内容でサーバに保存することが出来ます。
動的にWEBページを生成して保存する方法を説明しますね。
<?php
$title = "こんにちわ";
$pageName = "TEST.html";
$content = "<h1>Hello</h1><p>こんにちわ</p>";
$content = stripslashes($content);
$xhtml_template_base = <<<XML
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="./css/xxx.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="./js/xxxx.js" ></script>
<title>$title</title>
</head>
<body>
$content
</body>
</html>
XML;
?>
<?php
if( !touch($pageName) )
{
die("ファイル生成エラー");
}
if (!($filePointer = fopen ($pageName, "w"))) {
die ("ファイルが開けません。");
}
//ファイルロック
flock ($filePointer, LOCK_EX);
//ファイルの書き込み
fputs ($filePointer, $xhtml_template_base);
//ファイルロックの解除
flock ($filePointer, LOCK_UN);
?>
生成されたXHTMLを$pageNameの内容でサーバに保存することが出来ます。
解説ポイント
- stripslashes 関数について
-
この関数は「\"」を「"」に「\'」を「'」変換する関数です。
なぜ必要なのか、と言うと
たとえば「<a href="./img/a.jpg" alt="テスト" />」などのタグが
$contentに挿入される場合、stripslashes関数を使用しないと
<a href=\"./img/a.jpg\" alt=\"テスト\" />
とこのようになり、悲しい結果になります。