それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

PHPで固定長のファイル(文字列)を作る

「固定長文字列って何だよ。XMLだろ。せめてタブ区切りにしろよ!」って思った時期が僕にもありました。固定長文字列って便利ですね。

固定長文字列って箱形選択ととても相性が良い。箱形選択が出来るとループなど不要。コードべた書き。べた書きって良いんです。コードみてスグ分る。メソッド名とか見なくても、コードの見た目で「あ、ここは繰り返しだな」って分る。べた書き偉大です。

php で箱形選択しやすい文字を出力する

使い方例

<?php
foreach(range(1,10) as $i){
	$str = "";
	$str = $str. chr(rand(27,88));
	$str = $str. chr(rand(27,88));
	$str = $str. chr(rand(27,88));
	$str = $str. chr(rand(27,88));
	$str = $str. chr(rand(27,88));
	echo str_pad($str, 10). ",". str_pad(rand(1,10000), 10," ", STR_PAD_LEFT). ",".str_pad(rand(1,10000), 10, "0", STR_PAD_LEFT). "\n";
}
結果。

固定長文字列を作った結果

&HJ$3     ,      4880,0000001493
ETV)I     ,       957,0000003186
CH4:G     ,      5677,0000000298
P7H#)     ,      5965,0000005517
XPK85     ,      1447,0000008950
3A)A     ,      8500,0000001179
(D#F=     ,      3476,0000003181
C2TGG     ,       898,0000002138
IO?'>     ,      4245,0000007879
S43.,     ,      4299,0000008185


うむ綺麗にそろっている。

str_pad の引数について

string str_pad ( string , int $pad_length,string= " " , FLAG )

埋める文字は 第三引数 "#"って書けば,#で埋まる
左寄せ,右寄せ真ん中は第四引数FLAGで指定する

参考資料

http://jp.php.net/manual/en/function.str-pad.php

文字を空白で埋めるだけのメソッドとか書くんじゃないぞ。