ある日付までのカウントダウン日数を背景画像の上に数値画像を連結出力するプログラムです。
※ phpのGDライブラリが有効になっている必要があります。
参照:php manual イメージ関数(image):要件:GDライブラリの項参照
ここのland.to サーバーのphpでは既に有効です。
ダウンロード
ダウンロードファイルgd_countdown.LZH :lha解凍ツールで解凍してご利用下さいファイル一覧
gd_countdown_img.php : カウントダウン出力用 gd_util.php : 画像ファイルをそのタイプを調べて自動的にImageCreate関数群を切り換えて読み込む関数、リサイズ関数など image_util.php : 通常画像を読んでブラウザへ出力する関数と、cache関連header出力用関数(GDが無効でも使える物のみ) gd_bmp_util.php : ビットマップをImageCreateTrueColorオブジェクトデータへ読み込むための関数 gd_countdown_help.html: この設置解説ファイル
設置方法
呼び出しに使うのはgd_countdown_img.phpのみで、後は、include用のファイルですが、同一ディレクトリー内におくのが手っ取り早いでしょう。 しかし、画像ファイルなどに直接アクセスされたくない時は、非公開ディレクトリー側に置いて、include_pathなどを適切に設定して下さい。 ファイル属性は、プログラムがowner権限で動くサーバーでは、600, または700 とします。land.toでは、400でもphpは動作するようです。配置例 /public_html/php用ディレクトリー gd_countdown_img.php /php_code用ディレクトリー :public_html の外に置く場合 : include_pathを設定すること gd_util.php gd_bmp_util.php :ビットマップを対象としないなら必要なし image_util.php /背景や数値画像用ディレクトリー public_html の外でも配下でもかまいません、 画像ファイル :ファイル属性604、直接表示させたくないなら600
gd_countdown_img.phpの編集
- 12行目 date_default_timezone_set :日本時間以外の地域の0時で日付カウントを変更したい時その地域のtimezoneに変更して下さい。
-
15-18行目 エラーが画像内に出力されると画像が壊れてしまうため、error log ファイルへ出力する設定にしています。
※このエラーファイルは、実行プログラムと同じディレクトリーに作成されます。 他人に内容を見られないようにするには、予測されにくいファイル名にする、最後に拡張子「.cgi」を付けてcgi実行エラーが表示されるようにするなどです。 -
23行目:画像ファイルにビットマップを含める時は、true に変更して下さい。
$bmp = false;
-
29-32行目:数値画像ファイルの指定、数値文字キーに対応する画像を指定します。
※ gd_countdown_img.phpからの相対パスまたは、サーバー内絶対パスで、拡張子まで記述します。jpeg,gif,png, ($bmp=true; としたなら .bmp も) を読み込めます。 以降の画像指定についてすべて同じです。$imglist = array('0'=>'img/0.gif','1'=>'img/1.gif' , '2'=>'img/2.gif', '3'=>'img/3.gif', '4'=>'img/4.gif', '5'=>'img/5.gif' , '6'=>'img/6.gif', '7'=>'img/7.gif', '8'=>'img/8.gif', '9'=>'img/9.gif' );
- 35行目:当日先頭に入れる画像
- 38行目:指定日以降先頭に入れる画像
- 41行目:背景用画像 : 透明でいいなら空文字列。 指定する場合は、数値画像ファイルと同様の注意。
-
44行目:背景画像幅が数値画像連結よりも大きい時の水平配置:左寄せ -1, 中央 0, 右寄せ 1
※ 背景画像の方が小さい時は、横に繰り返し連結します。 -
46行目:背景画像縦が数値画像の縦よりも大きい時の垂直配置:上寄せ -1, 中央 0, 下寄せ 1
※ 背景画像の縦が小さい時は、上寄せで書き込みます。数値画像が下にはみ出る形となります。 - 出力画像のタイプ : 常にこのタイプで出力します。
IMAGETYPE_PNG、IMAGETYPE_GIF、IMAGETYPE_JPEG のいずれかとします。 - 品質(圧縮度): jpeg出力の時は品質(0最低~100最高)、png出力の時は圧縮レベル(0圧縮しない~9最大圧縮)
詳細は、phpマニュアルのimagejpegやimagepng関数をご参照下さい。
実行
- まず、gd_countdown_img.phpのurlをブラウザのurl欄に入力して、画像が表示されるかチェックして下さい。
例:sample.serverのphpディレクトリーに置いた時 http://sample.server/php/gd_countdown_img.php
画像にならない時のチェック- 宣伝の入るフリーサーバーでは、宣伝挿入を抑止しなければなりません。 land.toでは、以下の注意をお読み下さい。
- また、編集時のミスで、プログラムエラーが出ている場合もあります。
fetal error の時は、php.ini設定によっては、画面にエラー内容が表示されることもあります。エラー非表示としている場合は、エラーログを参照して、編集し直して下さい。
実行時エラーの場合は、gd_countdown_img.phpの18行目に指定したエラーログファイルを参照して、編集し直して下さい。
拡張子の最後に「.cgi」と付けているのは、ファイル属性644で作成されるので、不用意に他者からのブラウズで表示されないようにするためです。よって、ブラウザからは内容を表示出来ません。
- 次に拡張子phpの後ろに「?」を入れさらに「date=20100101」のように西暦4桁年と月日2桁づつで未来の日付を指定し、指定日までの日数文字列が画像内に書かれているかチェックします。また、過去の日付を入れると、指定日以降の場合の表示をチェックできます。
- 画像が表示出来るようになったら、htmlのimgタグのsrc属性に該当urlを記述します。
例1:同一ディレクトリーにあるhtmlファイルからの記述 <img src="gd_countdown_img.php?date=20200101" alt="2020年までカウントダウン"> 例2:同一サーバー種々階層のhtmlに記述 <img src="/php/gd_countdown_img.php?date=20201010" alt="カウントダウン"> 例3:他サーバーhtmlに記述 <img src="http://sample.server/php/gd_countdown_img.php?date=20170401" alt="2017年度カウントアップ">
- 実例:
20200101までカウントダウン
2017年度カウントアップ
本日
- まず、gd_countdown_img.phpのurlをブラウザのurl欄に入力して、画像が表示されるかチェックして下さい。
land.to サーバーでの注意
※ land.to サーバーでの広告自動挿入は、http headerでcontent-typeが画像やcss指示の時は行われないようになったようです。