PHPで文字列操作によく使うsubstrですが、しくみは単純ですが少し掘り下げてみるといろいろとできることに改めて関心しました。
まず、通常のように
echo substr("ABCDEFGHIJ", 5);
の結果は「FGHIJ」
echo substr("ABCDEFGHIJ", 2, 3);
の結果は「CDE」となります。
第一引数で処理対象となる文字列、第二引数で切り出す位置、第三引数で切り出すサイズを指定するんですね。ここで一歩踏み込むと
echo substr("ABCDEFGHIJ", -3);
の結果は「HIJ」
echo substr("ABCDEFGHIJ", 5, -3);
の結果は「FG」となります。これは「substr(“ABCDEFGHIJ”, 5)」の結果が「FGHIJ」なのに対して、末尾の3文字「HIJ」を差し引くことになるんですね。
今回、これらを活用してシステムで自動的に出力されるサムネイル画像のファイル名をしました。
例えば以下のようにして、任意の画像ファイル名「sample.jpg」から「sample_tmb.jpg」というファイル名を生成します。
echo substr("sample.jpg", 0, -4) . "_tmb" . substr("sample.jpg", -3);
※もちろん任意のファイル名は拡張子が3文字というのが条件です。
コメントする