ウェブデザイナーの日記

php :: ランダム文字列の一番目の文字をデカ文字にしてランダム色をつけるスクリプト

2007.07.06 05:07

php :: ランダム文字列の一番目の文字をデカ文字にしてランダム色をつけるスクリプト

php :: ランダム文字列の一番目の文字をデカ文字にしてランダム色をつけるスクリプト

ものすごいわかりにくいタイトルですが、サンプルを見れば意味が分かります↓

意味わかったでしょう?こういうのをサイトのトップにでもオモチャ的にくっつけたらどうすかという話。スクリプトはこちら↓

スクリプトをコピーして拡張子.phpでサーバにアプロードし、html中にincludeすることによって使えます。こんなかんじで↓

(記述例)<?php include("/path/to/good_quote.php"); ?>

mb_ereg_replaceで「〜文字目を置換」のやり方がよくわかんなかったのですが、結局preg_replaceを用いて、

$str = preg_replace("/^(..)/", "<span style=...>$1</span>", $str);

というふうに『日本語1文字 = 2bytes』というかんじでやったら結果オッケーでした。でもなんだか正しいやり方じゃない気がします。サーバの文字コードの設定等によってバケるかもです。同じことをmb_ereg_replace関数でやるにはパターンのトコにどう書けばよいのでしょうか。マルチバイトの正規表現についてわかりやすく解説してあるサイト等ありましたらどなたかご教授ください。

get_col()というユーザー関数がありますね。RGBの各値を128〜255の範囲でランダム生成し、これらをdechex関数で16進数に変換しています。RGBの値が大きくなるほど白に近づく、つまり色が薄くなっていくわけでありますから、ランダムの範囲を変えることによって生成される色の濃さを調整できます。いろんなパターンの範囲指定をすることによって、パステル調とか、ギラギラ調なんていうのがつくれそうです。

使った関数:

count(配列の要素数を得る)
rand(ランダム数を得る)
preg_replace(正規表現による検索置換)
dechex(数字を16進数に変換する)

,

ウェブデザイナーの日記 [コメント (0) :: トラックバック (0) ]

このエントリーのトラックバックURL:
http://blog.3ot.net/ping/934