最近使った文字列操作の関数について、サンプルと使い方を書いています。
ここで取り上げているのは下記関数です。
・sprintf – 0埋めに使う
・substr – 一部文字の切り出し
・str_shuffle – ランダム文字列取得
・strtoupper – 大文字変換
・strtolower – 小文字変換
sprintf - 0埋め
- 公式のドキュメントリンクはこちら。
文字列を第1引数で渡したフォーマットにそって文字列を作成し、返してくれます。
詳細の書式指定については公式を参照ください。
サンプルでは%s(文字列)と%d(数値)を使ってます。
サンプル
%sは文字列で、%dは数値を表しています。
それぞれ展開したい値を順番に、第一引数の後に並べると、渡した引数を展開した文字列を返してくれます。
$num = 5;
$fruit = 'apple';
$format = '%sが%d個あります。';
echo sprintf($format, $fruit, $num); // appleが5個あります。
2桁の0埋めは、下記のように書きます。
$num = 5;
echo sprintf("%02d", $num); // 05
substr – 文字の切り出し
- 公式のドキュメントリンクはこちら。
文字列を引数で指定した長さで切り取って、返してくれます。
substr (string $string ,int $start [, int $length ] )
第1引数が切り出す文字で、
第2引数が切り出しを開始する位置、
第3引数が開始位置から切り出す長さとなります。
第3引数を渡さなかった場合は、開始位置以降を切り取って返してくれます!
サンプル
開始位置のみ渡すパターンです。
文字列は0から数えています。
echo substr("apple,grape,banana", 2); // ple,grape,banana
開始位置と、切り取る長さを渡して、grapeだけを取ってきています。
echo substr("apple,grape,banana", 6, 5); // grape
str_shuffle – ランダム文字列作成
- 公式のドキュメントリンクはこちら。
引数で渡した文字列をシャッフルして、返してくれます。
サンプル
渡した文字列だけで、シャッフルされるので、同じ文字を渡さない場合は重複することはないですね。
echo str_shuffle("abcdefghijklmnopqrstuvwxyz1234567890"); // 「kzu3ovcg0t9wdjifqe82msxbpn7a1h456yrl」
空白もOKみたいです。
echo str_shuffle("this is a pen"); // 「sps hntae ii」
strtoupper – 小文字から大文字変換
- 公式のドキュメントリンクはこちら。
文字列を小文字から大文字に変換してくれます。
マルチバイト文字(日本語など)を含む場合はmb_strtoupperを使いましょう。
(文字化けしないようにするため)
サンプル
$str = 'apple';
echo strtoupper($str); // APPLE
マルチバイトを含むと文字化けする。。
$str = 'appleりんご';
echo strtoupper($str); // APPLÂ�Â�Á�
mb_strtoupperを使うと解決する。
$str = 'appleりんご';
echo mb_strtoupper($str); // APPLEりんご
※mbstringモジュールが必要です。
strtolower – 大文字から小文字変換
- 公式のドキュメントリンクはこちら。
文字列を大文字から小文字に変換してくれます。
マルチバイト文字(日本語など)を含む場合はmb_strtolowerを使いましょう。
(文字化けしないようにするため)
サンプル
$str = 'GRAPE';
echo strtolower($str); // grape
マルチバイトを含むと文字化けするので、日本語を含む場合はmb_strtolowerを使いましょう。
コメント