2月 262014
 

いや~通常であれば、とっても簡単に回答を見つけられるのでしょうけど・・・単純にドメイン名を表示する方法が解らなくて、膨大な時間を費やしましたが、解ってみれば何とも簡単。

以下のコードでドメイン名が表示される!

<?php
echo 'http://', $_SERVER ['SERVER_NAME'], '/'
?>

上記を実行すると・・・http://www.nakui.net/ と表示できるようになります。誰でも知っているんでしょうね~

$_SERVER ってのがキーでした。「スーパーグローバル変数 – PHPプロ!用語集」によれば以下の通り。

プログラム実行時に自動的に定義され、プログラムのどこからでもアクセスできる変数。PHP 4.1から導入された。 メソッド(関数)内からでも、何も宣言せずに直接アクセスすることができる。$GLOBALS、$_SERVER、$GET、$_POST、$_SESSION、$_ENV、$_FILES、$_COOKIE、$_REQUEST がある。

どうやら PHP の最初に理解しておく必要がありそうな・・・それにしても、もうちょっと簡単な用語で説明してくれると嬉しいけどな。何はともあれ、取り敢えず実施したいことはできました。

2月 192014
 

WordPress であれば、投稿記事の「最終更新日」を表示する方法は知っているのですが、PHP ではどうやって表示するんでしょう・・・これもネットに多くの情報がありますが、本サイトでは「PHP で WEB 作成:最終更新日を表示」を参考にしました。

ちょっと引用しておきましょう。

最終更新日を表示するには、filemtime という関数を使用します。 関数 filemtime は、ファイルの更新日時を返す関数です。 この関数と、日時を表示する関数 date を組み合わせることで、ファイルの更新日時を表示させることができます。

そしてそのコードは以下の通りです。

<?php
$last_modified = filemtime("index.php") ; 
  print "最終更新日は";
  print date("Y/m/d", $last_modified); 
  print "です。";
?>

上記を参考に実際には以下のコードを「俺流!バラ栽培」のページに挿入しました。

<?php
  clearstatcache (); // キャッシュをクリアする
  $Last_Updated = filemtime ('index.php');
  echo "(最終更新日:".date("Y年m月d日", $Last_Updated ).")";
?>

filemtime 関数はキャッシュに情報を保持するそうで、最新情報を得るためには clearstatcache でキャッシュをクリアにする必要があるそうです。なるほどね~

また、最終更新日を表示するために getlastmod 関数もあるようですが、コードを挿入したファイルの最終更新日のみの表示(ファイルを指定することができない)ということと、どうやら apache の設定等が関係するらしいので、こちらは採用を見送りました。getlastmod に関しては、「PHP: getlastmod – Manual」が参照できます。

2月 182014
 

(本投稿記事の内容はセキュリティーの観点から課題があるかもしれません・・・それを踏まえてご理解下さいませ)

ウェブサイトの構築を猛勉強中!?ですが、なんとか形になってきました。どれ位のスキルになったかというと・・・ちょっとお恥ずかしいですが本ブログのサブサイトである「俺流!バラ栽培」で確認できます。何だこの程度かよ、と言われそうですが・・・

さて、最初は全てのファイルを「HTML」で作成していたのですが、時間と共にやりたいことが増えてきて、特にメニューなんかは新しいページを加える毎に全てのファイルを更新しなければならない・・・こんなことを繰り返していたら、最終的にはめんどくさくなって止めてしまう。

そこで、早い段階で「各 HTML ページに共通している部分を PHP で外部ファイルにする」という方法をとろうと決断しました!即ち、全ての「HTML」に含めたいメニューのような部分を個別に外部ファイルとする・・・ウェブを公開しているサーバーにもよりますが、PHP が利用できるサーバーであれば、どこでもできるのではないでしょうかね!?

「HTML」ファイルからメニュー部分を切り取って、「menu.php」というファイルを作成して・・・必要な所に PHP で「include」させれば良い・・・ってことは、ネットで解るのですが、実際にやってみるとなかなか上手くいきませんでした。

Step 1:index.html から index.php とファイル名の拡張子を変更
Step 2:メニュー部分をそのまま切り取り、新たに menu.php ファイルとしてメニュー部分のみを保存。
Step 3:index.php のメニューを挿入したいところにコード「<?php include ("./xxxxx/menu.php") ?>」を挿入。

上記と同じような方法でヘッダー、サイドバー、フッターを我部ファイルにして、挿入したいところに挿入したコードのサンプルが下の通りです。最初は、PHP ファイルは「<?php」で始まって「?>」で終わる、と信じていたので、ファイルの先頭に「<?php」をコーディングして、最後に「?>」をコーディングにしていましたが、これらは必要ないんですよね!これに気が付いて、削除したら機能し出しました!

<?php include ("./xxxxx/header.php") ?>

<title>ウェブページのタイトル</title>
</head>

<body>
<div id="pagebody">
<!--  Header  -->
<div id="header">
<h1>ヘッダー:タイトル</h1>
<p>サブサイト</p>
</div>

<!-- Menu -->
<?php include ("./xxxxx/menu.php") ?>

<!--  Main Contents  -->
<div id="article">

<!-- ここに本文を挿入 -->

</div>

<!-- contents of Sidebar -->
<?php include ("./xxxxx/sidebar.php") ?>

<!-- Contents of Footer-->
<?php include ("./xxxxx/footer.php") ?>

こうしておけば、menu.php を修正すれば、全てのページのメニューが書き換えられる!ウェブサイトのメンテナンスがとっても楽になりますよね!随分と以前に、HTML でウェブサイトを構築して頃に気が付いていれば、もっと長生きできるウェブサイトになっただろうに・・・

1月 122014
 

本ブログで重要な日付(と勝手に考えている・・・)に関する PHP コードを自分用の忘備録として記録しておきます。目立ちませんし、閲覧して頂いている方々には全く関係のないと思われるコードですが。

PHP を埋め込んでおけば、自動で更新してくれるので、本当に重宝しているのですが、なんとたったの 1 行で実現してくれます。

今日の日付を表示してくれる PHP コード

閲覧して頂ける方々に「今日」の日付を表示してくれるのですが、私自身は「今日現在、どれ位の投稿記事を公開しているのかな」ってな確認のために、このコードをサイドバーに埋め込んでいます。

<?php echo date("Y年m月d日"); ?>

投稿記事やページの公開日を表示してくれる PHP コード

固定ページに埋め込んでいます。「このページ、いつ公開したっけ?」と意外に自問自答することが多いことに気が付いたので、各ページの末尾に埋め込んでいます。

<?php print the_time('Y年m月d日') ?>

投稿記事やページの最終更新日を表示してくれる PHP コード

固定ページに埋め込んでいます。上記の公開日からどれ位日にちが経っているのかを確認したいことがあるために埋め込んでいます。

<?php the_modified_time('Y年m月d日') ?>

こうした「たった 1 行で」自分のやりたいことを実現できるっては、やっぱり凄いですよね~また、上記のような PHP コードは基本なんでしょうけど・・・それでも、ネットを検索すれば、先人の名案が次々とヒットするのも「時代は変わったな~」って、改めて感じてしまう今日この頃です。

【注記】
上記は、「WordPress Codex:テンプレートタグ::日時タグ」に詳細が説明されています。

1月 122014
 

あくまでも自分用ですが、ブログのサイドバーに公開している「投稿記事数」と「ページ数」を簡単に表示させたいな、と考えました。どうすれば良いのかな~って考えていましたが、意外と簡単にできることが解りました!

まずは・・・ブログ内で PHP が稼働できるようにすることが前提ですが、以下のように1行の PHP コードを挿入するだけで実現できます。

公開した投稿記事数を表示する!

<?php echo wp_count_posts()->publish ?>

公開したページ数を表示する!

<?php echo wp_count_posts('page')->publish ?>

上記を工夫して、以下のような表示をすることできます。

本ブログでは、169 の投稿記事と、12 個のページを公開しています。

これをそのままサイドバーに表示しようと考えました。誰も気にしないとは思いますが、自分で確認すると「お~ここまで来たか」ってモチベーションが上がりそうです・・・