技術的なメモです。Webサイト構築のお仕事にて、トップページはあえて WordPressなどのCMSを利用せずに構築することがあります。「間違って壊してしまうことを避ける」「WordPressはブログの発信にフォーカス」したサイト設計を行うからです。
ただ、そのWebページの一部、たとえば営業時間などは「専門知識なく自由に変更できる」ようにしようと考え、コードを作ったのでメモです。
ポイント
- PHPを使い、テキストファイルを配列で読み込み、表示する
- HTMLタグ 不要
- 行数も取得して、柔軟な対応ができるように
- いままで静的なHTMLファイルだったのを、PHPファイルに変更するため、.htaccessにてリダイレクト(転送)する
「お知らせ」を埋め込む
HTMLファイルを操作せずに、お知らせを書き込めるようにしました。FTPでテキストファイルをアップロードする必要があるのですが、いまの段階ではこれはそのままで。
「notice.txt」をルートの下「data」ディレクトリーに配置します。
このテキストファイルの1行目は「見出し」に、2行目から以下は「おしらせ内容」として「改行も反映する」形にしました。
[code]
おしらせ
5月の臨時休業ご案内
ゴールデンウイークなので
みんなハッピーにのんびりしませんか?
カレンダー通りのお休みをいただきます。
よろしくお願いします。
[/code]
PHP
PHPでは、こんなあたりを使いました。
- dirname関数でフルパスを取得、サーバーのフルパスを調べるのが面倒だし、サーバー環境が変わってもいいように(参考 PHP: dirname – Manual)
- file関数で、ファイル全体を読み込んで配列に格納(参考 PHP: file – Manual)
- count関数で配列を数えて、テキストファイルの行数を調べる(参考 PHP: count – Manual)
あとは、forとifで出力を制御
- for – Manual → http://php.net/manual/ja/control-structures.for.php
- if – Manual → http://php.net/manual/ja/control-structures.if.php
出来上がったコード
テキストファイル 1行目は見出しタグになるようになっています。
[code]
<?php
$file_notice_path = dirname(__FILE__) . ‘/data/notice.txt’;
$hairetsu_notice = file($file_notice_path);
$count_notice = count($hairetsu_notice);
for ($i = 0; $i < $count_notice; $i++){
// 実行処理
if ($i == 0){
print "<h2>".$hairetsu_notice[$i]."</h2>\r\n<p>\r\n";
} else {
print $hairetsu_notice[$i]."<br />\r\n";
}
}
print "</p>";
?>
[/code]
これで、HTMLを書かずに、Webページへ「おしらせ」を自由に書くことができます。