PHP を使って複数行テンプレートからテキストをダーっと作る、お手軽な方法を実践したよ♪

view-source-localhost-aaaaaaatest-index.php.jpg

Excel とサクラエディタで日付の一覧テキストをダーっと一気に作る方法 | oki2a24  では日付という1行のテンプレートで繰り返しをし、テキストをダーっっと作りましたけれど、複数行のテンプレートで繰り返しのテキストを作りたい場合はどうすればよいでしょうか?それも、日付のような変わる部分、つまり変数が入る部分は複数あります。

Excel でもできるのかもしれませんが、ぱっと思いつきませんので、PHP を使ってぱっとやってしまいます。その方法をメモします。

今回のテンプレート

変数部分は、「XXXXXXXX」になります。4箇所あり、この値を自由自在に変えて、ダーっと繰り返しのテキストを作りたいのです。改行や、タブもテンプレートに含んでいるところがポイントです。

		'XXXXXXXX' => array(
			'url' => '%s/images/headers/XXXXXXXX.JPG',
			'thumbnail_url' => '%s/images/headers/XXXXXXXX-thumbnail.JPG',
			/* translators: header image description */
			'description' => __( 'XXXXXXXX', 'twentyeleven' )
		),

さっそくやってみました♪PHP のソースです。

<?php
// 変数を入れる配列
$filenames = array(
		'XXXXXXXX',
		'YYYYYYYY',
		'ZZZZZZZZ');

// 変数の数分だけ繰り返す
foreach ($filenames as $filename) {

	// テンプレートに変数を代入
	$template = "		'$filename' => array(
			'url' => '%s/images/headers/$filename.JPG',
			'thumbnail_url' => '%s/images/headers/$filename-thumbnail.JPG',
			/* translators: header image description */
			'description' => __( '$filename', 'twentyeleven' )
		),
";

	// テンプレートを出力
	echo $template;
}
?>

ファイル名は特にこだわりはないので index.php にしました。変数は、出力したいものに変えます。このファイルにウェブブラウザからアクセスします。ちなみに、このための環境は Apach 、MySAQL 、PHP を Windows 環境でも開発できるように簡☆単さを重視して Eclipse の Pleiades All in One PHP をインストールします。 | oki2a24 で作成済みです。

ここで一点注意。HTML タグなどで装飾していませんので Chrome では表示が崩れました。崩れないようにするには、エスケープや特殊文字でテンプレートを修正する必要がありますが、簡単にぱっとお手軽にテキストを作るのが目的です。そんなの面倒です。いやです。

簡単な解決方法があります。ページのソースを表示すれば、echo で表示した文字列がそのまま取得できます。これでミッションコンプリートです!!!

なお、ソースを表示したときにやたら改行が含まれている場合がありました、改行コードが原因だったのですが、ソースの改行コードを LF に修正すると余分な改行がなくなりました。Eclipse での改行コードがを変えたいときは、Eclipse の改行コードの変更方法と設定をメモします | oki2a24 を参照してください。

おわりに

PHP ってウェブのシステムをお手軽に使うのに優れた言語なんだよね?と思っていますが、別にしっかりしたウェブとか、システムとか、HTML とか、いつもいつもかならずしもこだわらなくてもいいと思うんです。5、6分で今回のようなソースを書いて、ウェブじゃないけどお手軽にやりたいことをやってもいいと思うんです。

以上、自戒をこめて!

ディスカッションに参加

1件のコメント

コメントを残す

コメントを残す