表示ページのメニュー画像はロールオーバーさせておく
いまいち説明しづらいんですが、マウスロールオーバーした時のメニュー画像をラクに使い回すためのもの。
例えば「index.php」へのリンクを張っているメニューボタンが、

カーソルが外れてる時  menu_index_off.gif
カーソルが当たった時  menu_index_over.gif


だと仮定すると、当のindex.phpがページ表示されている時は、ロールオーバーさせなくても自動的に「menu_index_over.gif」を表示させておきたいな、という感じ。

…伝わるでしょうか?(がっくり) とりあえず、必要そうな人にだけどうぞ。
<?php
// 現在表示されているファイル名の取得
$filename = basename($_SERVER['SCRIPT_NAME']);
?>

↑下記の判定用PHPを複数使いたい場合、こうして別途でBODYタグの先頭の方へ入れておくと良さげ。

// ファイル名の判定
<?php
if ($filename=="index.php"){
echo "<img src='images/menu_index_over.gif'>";
}else{
echo "<img src='images/menu_index_off.gif'>";
}
?>
メニュー画像はたいてい複数あると思うので(「トップページ」「更新履歴」「ギャラリー」「コラム」「リンク」…などなど)ファイル名の取得はやっぱ先にやっておいた方が良さそうですね。
[PR]
# by sozaifan | 2004-08-10 13:53 | PHP
OS別に内部スタイルを振り分け
この更新履歴を表示している部分だけ、ちょっとレイアウトがタイト。
Macだと10ptでちょうどいい具合だけど、Windowsだと10ptじゃ少し大きい。かといって、10pxはちょっと小さい。11pxがいいんだけど、そうすると今度はMacで汚く表示される。
ああ、Macは10pt、Winは11pxで表示されればいいのに…。

などと言う、部分的な内部スタイルだけを単純にWinかMacかで振り分けたい場合。
CSSファイルを2つ用意して振り分けするほどでもないんだよなぁ、って時にどうぞ。
※下記の応用でCSSファイル自体の振り分けも可能です。

例えば…

ここまで、普通の本文です。
★この行だけ幅がタイトだったりして、レイアウトが崩れるのも困るから微妙にフォントサイズを振り分けたいな。
ここからは、また普通の本文です。

…という場合には、こんな感じ。

ここまで、普通の本文です。<br>
<?php
if( preg_match( "/Windows/", $_SERVER['HTTP_USER_AGENT'] ) )
{
// Windows用のフォントサイズ小
echo("<div style='font-size:11px'>");
}
elseif( preg_match( "/Mac/", $_SERVER['HTTP_USER_AGENT'] ) )
{
// Mac用のフォントサイズ小
echo("<div style='font-size:10pt'>");
}
else
{
// その他用のフォントサイズ小
echo("<div style='font-size:x-small'>");
}
?>
★この行だけ幅がタイトだったりして、レイアウトが崩れるのも困るから微妙にフォントサイズを振り分けたいな。
</div>
ここからは、また普通の本文です。
といった具合です。
ブラウザや携帯の種類ごとに表示させるHTMLページを分岐させる、などの場合は「レッツPHP!」が参考になります。
[PR]
# by sozaifan | 2004-08-10 13:14 | PHP
Googlebotさん、いつ来てた?
指定した検索ロボットが来た時刻を検出し、ログファイルに記録するもの。
アクセス解析を入れるほどじゃないんだけれども、ボットがいつ来たかだけをチェックしたい、という時に便利な小技。

ボットが来ると指定したメアドへ連絡、というタイプのものもあったけど、とりあえずログファイルに記録してくれればそれでいいや。と言うことで、ぴったりのものがありました。

今回はPHPを使って、この検索ロボットが来た時刻を検出できるようにしましょう。仕組みはとてもカンタンです。
ほんとにカンタンでした。
[PR]
# by sozaifan | 2004-08-10 12:57
CSSの切り替え
JavaScriptでの切り替えだと、JavaScriptがオフの時に動作しない。
それなら、PHPにやってもらえば早いんじゃない?
と言うことで探してみたら、ちらほら見つけたのでご紹介。

PHP 版 CSS チェンジャー(CSS切り替え)
スタイルシートチェンジャー
Script Laboratory [CGI / PHP - CSS (Change Style Sheet)]

お好きなものをどうぞ。
[PR]
# by sozaifan | 2004-08-10 12:54 | PHP
ファイル情報の表示
指定したファイルのファイルサイズと最終更新日を自動的に表示しようというもの。バイトを自分でMBに変換とか何だか面倒だったのでラクしよう。という目的だったのはいいけど、参考になるサンプルソース探しにやたら時間がかかった一品。

<?php
// チェックするファイル
$file = './sample.jpg';

// ファイルサイズの取得
function DownloadSize($file) {
$size = filesize($file);
$sizes = Array('バイト', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
$ext = $sizes[0];
for ($i=1; (($i < count($sizes)) && ($size >= 1024)); $i++) {
$size = $size / 1024;
$ext = $sizes[$i];
}
return round($size, 2).$ext;
}

// ファイルサイズの表示
print ("※ファイルサイズ:" . DownloadSize($file) . "/");

// ファイルの最終更新日の取得と表示
$last = date("Y年m月d日", filemtime($file));
echo "最終更新日:$last";
?>

表示結果サンプル
※ファイルサイズ:8.9KB/最終更新日:2004年08月09日

単位も適切なものを自動判別して表示してくれるので便利です。
[PR]
# by sozaifan | 2004-08-10 12:35 | PHP