Webサイトでテキストファイルを読み込み表示するPHPコード

技術的なメモです。Webサイト構築のお仕事にて、トップページはあえて WordPressなどのCMSを利用せずに構築することがあります。「間違って壊してしまうことを避ける」「WordPressはブログの発信にフォーカス」したサイト設計を行うからです。

ただ、そのWebページの一部、たとえば営業時間などは「専門知識なく自由に変更できる」ようにしようと考え、コードを作ったのでメモです。

IMG_1483

ポイント

  • 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で出力を制御

出来上がったコード

テキストファイル 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ページへ「おしらせ」を自由に書くことができます。

著者プロフィール

ものくろ(大東 信仁)
ものくろ(大東 信仁)
ブロガー・Web&Blogコーチ。親指シフト orzレイアウト開発者。ブログは月間65万PVを記録(2016年1月)。200回を超えるワークショップ開催・のべ1,000名のブログサポートに携わる。WordPressが得意。

詳しいプロフィールはこちら

もっと
ブログで情報発信
について読む