[PHP]文字埋め処理 Edit

文字データ作成において古いソフトによっては文字数の幅が規定されている場合がある。

  • 例(データはSJIS)
    ,8文字,4文字,5文字,
,週刊誌  ,   1,  400,

PHPでこのデータ群を作ろうとstr_padを使ってみたのだがうまくいかない。 文字数の判定が全角(2)、半角カタカナ(1)、英数字(1)でそれぞれ想定外の文字埋めをする。*1
仕方が無いので次の方法でごまかしてみた。

	function moji_ume($moji, $ume, $chg)
	{
		$moji_ume = ($chg) ? $moji . str_repeat(" ", $ume - mb_strwidth($moji))
		: str_repeat(" ", $ume - mb_strwidth($moji)) . $moji;
		return $moji_ume;
	}
  • 上の例だとこんな感じ
echo ',' . moji_ume($fields[1], 8,1) . ',' . moji_ume($fields[1], 4,0) . ',' moji_ume($fields[1], 5,0) . ',';

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS