sprintf関数
えっと、思いっきり!自分用のメモです。
すぐに忘れるんで・・・(汗)
桁が決まってるコード類とか、まぁ日付を扱うときでも良いのですけど、
変数の桁数を揃えたい(フォーマットを指定したい)時に、PHPスクリプト言語で
「えっ~っと、printfじゃなくて、何だったっけ・・・?」
って何度も思うので、メモメモ!
そんな時には、sprintf (←覚えろよ>俺)
sprintf関数:フォーマットされた文字列を返す
出力フォーマット指定して出力した結果となる文字列を変数に代入できる。
↓例えば、11の数値を"0011"みたいな4桁にしたい時には・・・
<?
$num = 11;
$id = sprintf("%04d", $num);
?>
↓例えば、年月日を別々の変数に持ってて、年:4桁、月:2桁、日:2桁にしたい時には・・・
<?
$year = 2004;
$month = 1;
$day = 2;
$schedule = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>
↓引数の型
% - パーセント文字。引数は不要
b - 引数を整数として扱い、バイナリの数値として表現する
c - 引数を整数として扱い、その ASCII 値の文字として表現する
d - 引数を整数として扱い、10 進数として 表現する
u - 引数を整数として扱い、符号無しの10進 数として表現する
f - 引数を double として扱い、浮動小数点数 として表現する
o - 引数を整数として扱い、8 進数として 表現する
s - 引数を文字列として扱い、表現する
x - 引数を整数として扱い、16 進数として (小文字で)表現する
X - 引数を整数として扱い、16 進数として (大文字で)表現する
すぐに忘れるんで・・・(汗)
桁が決まってるコード類とか、まぁ日付を扱うときでも良いのですけど、
変数の桁数を揃えたい(フォーマットを指定したい)時に、PHPスクリプト言語で
「えっ~っと、printfじゃなくて、何だったっけ・・・?」
って何度も思うので、メモメモ!
そんな時には、sprintf (←覚えろよ>俺)
sprintf関数:フォーマットされた文字列を返す
出力フォーマット指定して出力した結果となる文字列を変数に代入できる。
↓例えば、11の数値を"0011"みたいな4桁にしたい時には・・・
<?
$num = 11;
$id = sprintf("%04d", $num);
?>
↓例えば、年月日を別々の変数に持ってて、年:4桁、月:2桁、日:2桁にしたい時には・・・
<?
$year = 2004;
$month = 1;
$day = 2;
$schedule = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>
↓引数の型
% - パーセント文字。引数は不要
b - 引数を整数として扱い、バイナリの数値として表現する
c - 引数を整数として扱い、その ASCII 値の文字として表現する
d - 引数を整数として扱い、10 進数として 表現する
u - 引数を整数として扱い、符号無しの10進 数として表現する
f - 引数を double として扱い、浮動小数点数 として表現する
o - 引数を整数として扱い、8 進数として 表現する
s - 引数を文字列として扱い、表現する
x - 引数を整数として扱い、16 進数として (小文字で)表現する
X - 引数を整数として扱い、16 進数として (大文字で)表現する
文字型、色々
日々なんちゃってプログラマとして、せっせとプログラム作成してる訳ですが・・・(汗)
ここ数年は、MySQL+PHPの組合せでLinuxサーバ上でのWebシステム開発がメインって感じで
主にPHPスクリプト言語で、DBからデータ取得して画面表示したり、画面から入力されたデータをDBに登録したり、みたいな画面作り担当なんです。
がっ・・・珍しく、DB設計をするハメに(←DB担当者が忙しいから。滝汗)
復習を兼ねて、フィールド型をメモしておきます。
データ的に、よく使う事になるフィールド型は
1.文字型 2.数値型 3.日付型
の3種類ですかね?
今回は、MySQLの文字型のメモです。
■文字型の種類
CHAR(バイト数) 固定長文字列 ~255バイト
VARCHAR(バイト数) 可変長文字列 ~255バイト
TEXT 可変長文字列 ~65,535バイト
MEDIUMTEXT 可変長文字列 ~16,777,215バイト
LONGTEXT 可変長文字列 ~4,294,967,295バイト
■文字型ワンポイント!?
CHAR型とVARCHAR型の違いは、例えば桁が決まっている?NOを扱う時(00001とか長さが固定)の場合にはCHAR型を使う。
VARCHAR型の場合に、日本語(全角)で最大50文字を想定している場合{※日本語(全角)が2バイトなので、倍にする}は、VARCHAR(100)になる。
VARCHAR型をWeb画面から入力する際には、最大文字数をチェックしないと・・・文字数がオーバーしている分は切り捨てられる(日本語の場合は2バイトなので、オーバーした時に1バイト分切り捨てられると文字化けしたりとかします)
■文字型の悩み???
VARCHAR(200)くらいの場合は、いっそTEXT型にしようかと?悩むんですけど・・・
ここ数年は、MySQL+PHPの組合せでLinuxサーバ上でのWebシステム開発がメインって感じで
主にPHPスクリプト言語で、DBからデータ取得して画面表示したり、画面から入力されたデータをDBに登録したり、みたいな画面作り担当なんです。
がっ・・・珍しく、DB設計をするハメに(←DB担当者が忙しいから。滝汗)
復習を兼ねて、フィールド型をメモしておきます。
データ的に、よく使う事になるフィールド型は
1.文字型 2.数値型 3.日付型
の3種類ですかね?
今回は、MySQLの文字型のメモです。
■文字型の種類
CHAR(バイト数) 固定長文字列 ~255バイト
VARCHAR(バイト数) 可変長文字列 ~255バイト
TEXT 可変長文字列 ~65,535バイト
MEDIUMTEXT 可変長文字列 ~16,777,215バイト
LONGTEXT 可変長文字列 ~4,294,967,295バイト
■文字型ワンポイント!?
CHAR型とVARCHAR型の違いは、例えば桁が決まっている?NOを扱う時(00001とか長さが固定)の場合にはCHAR型を使う。
VARCHAR型の場合に、日本語(全角)で最大50文字を想定している場合{※日本語(全角)が2バイトなので、倍にする}は、VARCHAR(100)になる。
VARCHAR型をWeb画面から入力する際には、最大文字数をチェックしないと・・・文字数がオーバーしている分は切り捨てられる(日本語の場合は2バイトなので、オーバーした時に1バイト分切り捨てられると文字化けしたりとかします)
■文字型の悩み???
VARCHAR(200)くらいの場合は、いっそTEXT型にしようかと?悩むんですけど・・・