アルファベットなどの文字列を、大文字や小文字に変換してくれる便利な関数がPHPにはあります。
小文字を大文字にするのはstrtoupper()
で、小文字に変換するのがstrtolower()
です。
他にも頭文字だけ大文字にする関数もご紹介します。
PHPは関数のラインナップが豊富ですね。
目次
小文字を大文字に変換
小文字のアルファベットをstrtoupper()
で大文字にして、echo
で表示させてみましょう。
strtoupper関数
1 |
echo strtoupper('led zeppelin'); |
LED ZEPPELIN
大文字に変換されましたね。
strtoupperの構文
strtoupper(文字列)
文字列のアルファベットをすべて大文字に変換して返します。
マルチバイト文字にはmb_strtoupper
strtoupper()
で日本語や大文字のアルファベットなどを処理すると、たまに文字化けしたりするので、そういう場合はmb_strtoupper()
を使うと良いでしょう。
1 |
echo mb_strtoupper('led zeppelin最高!'); |
LED ZEPPELIN最高!
日本語混じりでも文字化けせず、アルファベット小文字の部分だけ大文字に変換してくれました。
大文字を小文字に変換
今度は逆にアルファベットの大文字を小文字に変換してみましょう。
strtolower関数
1 |
echo strtolower('DEEP PURPLE'); |
deep purple
小文字に変換されました。
strtolowerの構文
strtolower(文字列)
文字列のアルファベットをすべて小文字に変換して返します
マルチバイト文字にはmb_strtolower
1 |
echo mb_strtolower('DEEP PURPLE最強!'); |
deep purple最強!
mb_strtoupper()
同様、日本語混じりでも文字化けせず、アルファベット大文字の部分だけ小文字に変換してくれました。
頭文字だけ大文字、小文字に変換
頭文字がアルファベットだった場合、頭文字だけを大文字や小文字に変換します。
ucfirst関数で頭文字を大文字に変換
1 2 3 |
echo ucfirst('led zeppelin'); echo ucfirst(strtolower('LED ZEPPELIN')); |
Led zeppelin
Led zeppelin
頭文字がL
と大文字になりましたね。
2番目はucfirst()
の中でstrtolower()
を使っています。
大文字をすべて小文字にして、先頭だけ大文字にするというややこしいことをやっていますが、問題なく動作します。
lcfirst関数で頭文字を小文字に変換
大文字を小文字に変換し、キャメルケースにしてみましょう。
1 |
echo lcfirst('LedZeppelin'); |
ledZeppelin
ちなみに上記のように複合語をくっつけて、2番目の頭文字だけ大文字にする書き方がキャメルケースで、PHPでも使う機会が多いですね。
キャメルケース(英: camelcase)は、複合語をひと綴りとして、要素語の最初を大文字で書き表すことをいう。キャメルケースとは、大文字が「らくだのこぶ」のように見えることからの命名である。
キャメルケースじゃなく_
(アンダースコア)で区切る方法はスネークケースというそうです。
構文
ucfirst(文字列)
lcfirst(文字列)
- ucfirstは頭文字だけ大文字に変換
- lcfirstは頭文字だけ小文字に変換
どっちがどっちか分からなくなりそうですが、以下のように覚えましょう。
- 大文字に変換する
strtoupper()
のu
で、ucfirstは大文字に変換 - 小文字に変換する
strtolower()
のl
で、lcfirstは小文字に変換
文字列の各単語の頭文字だけ大文字に変換
スペースで区切ったアルファベット文字列の、各単語の頭文字だけを大文字にしてくれます。
これは便利ですね!
ucwords関数で頭文字だけ大文字変換
1 2 3 |
echo ucwords('led zeppelin'); echo ucwords(strtolower('DEEP PURPLE')); |
Led Zeppelin
Deep Purple
各単語の頭文字が、Led
とZeppelin
という風に大文字になってくれました。
DEEP PURPLE
もucwords()
の中にstrtolower()
をセットし、一旦小文字にした後に、各単語の頭文字だけ大文字にできました。
構文
ucwords(文字列 (, 区切り文字(任意)))
基本は今まで同様、文字列を設定するだけの関数ですが、上記のように任意で区切り文字も指定することで、区切り文字ごとに各単語の頭文字だけ大文字にできます。
ucwords関数で区切り文字も指定する
区切り文字で区切られた文字列でも、通常は1つの単語扱いとなります。
第二引数で区切り文字を指定することで、区切り文字ごとに単語の頭文字だけ大文字に変換してくれます。
以下のようにスラッシュで区切られた単語を、区切り文字を指定せずに出力したバージョンと、区切り文字を指定して出力したバージョンで見比べてみましょう。
1 2 3 |
// 区切り文字を指定しない echo ucwords('clash/ramones/nirvana'); |
Clash/ramones/nirvana
- 全体の文字列の頭文字
C
だけが大文字に変換された。
1 2 3 |
// 区切り文字を指定する echo ucwords('clash/ramones/nirvana', '/'); |
Clash/Ramones/Nirvana
- 区切り文字ごとに各単語の頭文字
C
R
N
がそれぞれ大文字に変換された。
上記2つを見比べてみると、第二引数に区切り文字を入れた方が、単語ごとに頭文字だけ大文字になってくれましたね。