seseragiseven

PHPでのゼロパディング

今更という感じはするけれど、例のごとく備忘録。

sprintf

本来の使い方とは違うものの、第一引数で桁数を指定すればゼロパディングができる。

$val = "3";
$val = sprintf("%02d", $val);
print $val // "03"

$val = "123";
$val = sprintf("%05d", $val);
print $val // "00123"

str_pad

左だけでなく右、及び両方にパディングするときはこれ。
0だけでなく好きな文字で埋めることができる。
公式ドキュメント「str_pad」より

$input = "Alien";
echo str_pad($input, 10); // "Alien     "
echo str_pad($input, 10, "-=", STR_PAD_LEFT); // "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH); // "__Alien___"
echo str_pad($input, 6 , "___"); // "Alien_"

簡単なんだけど忘れがち。

【フォーム】確認画面の表示にarray_intersect()

フォームでの確認画面で、実際の値から表示用の項目を出す時に役立つメソッド。
array_intersect()を使って、「セレクトボックスで選ばれたものだけ連想配列に変換する」というもの。わかりづらいけど見たら分かってもらえる…と思う。頑張って書いた。

事例

例えば好きな果物を聞くようなセレクトボックスがあったとする。

<select name="fruit[]">
	<option value="orange">みかん</option>
	<option value="grape">ぶどう</option>
	<option value="apple">りんご</option>
</select>

この時当然ユーザーが見ている「みかん」と実際の値「orange」は別に設定されることが多い。これはデータベースの関係やらいろいろある。
この後phpファイルにデータを送信し、このままデータベースに入れる場合はいい。が、その間に確認画面を挟むとき、一気にめんどくさくなる(というか僕のとこではいつもなっている)のである(ヽ’ω`)

fruit[]のように角カッコがついたものの値は配列で送られる。1つめと3つめを選んだ場合はこういう具合。

array( 'orange' , 'apple' );

確認画面ではこれを保持しつつ、表示用に「みかん、りんご」と出さなければいけない。今まではこうやってた。

// 果物の対応配列
$fruits = array(
	'みかん' => 'orange',
	'ぶどう' => 'grape',
	'りんご' => 'apple',
);
$likes = $_POST['fruit'];
$result = array();

// 2重のforeachで回して、一致したら配列に入れてbreak
foreach( $like as $like ){
	foreach( $fruits as $key => $val ){
		if( (string)$like === (string)$val ){
			$result[] = $key;
			break;
		}
	}
} // $result = array( 'みかん' , 'りんご' );

これで欲しい表示用の値は取れるが、非効率で書くのも面倒く、スマートじゃない。どうするか。
続きを読む

ブラウザを閉じてもセッションが切れないようにする、つまり寿命を伸ばす

【追記】2015年6月、より安全な記事を書いています

こちらの記事に新しい情報を載せています。
【PHP】安全な自動ログイン機能というものを作ってみた

↓以下の記事は古い情報となりますので、ご了承ください。↓

———-

僕の会社では製品の情報や新着のお知らせなどをデータベースで管理し、管理ページからフォームを介して入力や編集が行えるようにしている。

これは入力のフォーマットを一定にすることで社内の情報をなるべく統一し、管理しやすい状況に持っていく為。要はいろんな文言なんかがしちゃかちゃに書かれている状況が気持ち悪くてこのようなものを作った。ちなみに以前はサイト内に3ヶ所あるお知らせテーブルにHTMLで逐一書き込んでいた…(ヽ’ω`)
フォームからデータベース管理にすると入力も楽になるので非常によい。データも統一されるので精神衛生上も健康になれる。
続きを読む

PHPで画像に余白を付けるスクリプト[正方形]

いきなりマニアックな記事だけど、仕事で作ったので備忘録。

どういうスクリプトか

まずどういう事が出来るのかを書く。
画像名を設定して、画像ファイルと幅と余白を渡す。するとその幅その余白内に縮小された画像を返す。
つまり、

imagemake

こういう事になる。これは幅600pxで余白60pxに設定した場合。
入れる画像が正方形でない場合、長い辺に合わせて縮小される。

続きを読む

前へ 1 2 3 4

カテゴリー

人気の記事