PHPでの大文字・小文字変換と、頭文字だけ変換する方法

  • このエントリーをはてなブックマークに追加
  • Pocket

スポンサードリンク

アルファベットなどの文字列を、大文字や小文字に変換してくれる便利な関数がPHPにはあります。

小文字を大文字にするのはstrtoupper()で、小文字に変換するのがstrtolower()です。

他にも頭文字だけ大文字にする関数もご紹介します。

PHPは関数のラインナップが豊富ですね。

 

小文字を大文字に変換

小文字のアルファベットをstrtoupper()で大文字にして、echoで表示させてみましょう。

strtoupper関数

LED ZEPPELIN

大文字に変換されましたね。

strtoupperの構文

strtoupper(文字列)

文字列のアルファベットをすべて大文字に変換して返します。

マルチバイト文字にはmb_strtoupper

strtoupper()で日本語や大文字のアルファベットなどを処理すると、たまに文字化けしたりするので、そういう場合はmb_strtoupper()を使うと良いでしょう。

LED ZEPPELIN最高!

日本語混じりでも文字化けせず、アルファベット小文字の部分だけ大文字に変換してくれました。

大文字を小文字に変換

今度は逆にアルファベットの大文字を小文字に変換してみましょう。

strtolower関数

deep purple

小文字に変換されました。

strtolowerの構文

strtolower(文字列)

文字列のアルファベットをすべて小文字に変換して返します

マルチバイト文字にはmb_strtolower

deep purple最強!

mb_strtoupper()同様、日本語混じりでも文字化けせず、アルファベット大文字の部分だけ小文字に変換してくれました。

頭文字だけ大文字、小文字に変換

頭文字がアルファベットだった場合、頭文字だけを大文字や小文字に変換します。

ucfirst関数で頭文字を大文字に変換

Led zeppelin
Led zeppelin

頭文字がLと大文字になりましたね。

2番目はucfirst()の中でstrtolower()を使っています。

大文字をすべて小文字にして、先頭だけ大文字にするというややこしいことをやっていますが、問題なく動作します。

lcfirst関数で頭文字を小文字に変換

大文字を小文字に変換し、キャメルケースにしてみましょう。

ledZeppelin

ちなみに上記のように複合語をくっつけて、2番目の頭文字だけ大文字にする書き方がキャメルケースで、PHPでも使う機会が多いですね。

キャメルケース(英: camelcase)は、複合語をひと綴りとして、要素語の最初を大文字で書き表すことをいう。キャメルケースとは、大文字が「らくだのこぶ」のように見えることからの命名である。

出典:キャメルケース – Wikipedia

キャメルケースじゃなく_(アンダースコア)で区切る方法はスネークケースというそうです。

構文

ucfirst(文字列)
lcfirst(文字列)

  • ucfirstは頭文字だけ大文字に変換
  • lcfirstは頭文字だけ小文字に変換

どっちがどっちか分からなくなりそうですが、以下のように覚えましょう。

  • 大文字に変換するstrtoupper()uで、ucfirstは大文字に変換
  • 小文字に変換するstrtolower()lで、lcfirstは小文字に変換

文字列の各単語の頭文字だけ大文字に変換

スペースで区切ったアルファベット文字列の、各単語の頭文字だけを大文字にしてくれます。

これは便利ですね!

ucwords関数で頭文字だけ大文字変換

Led Zeppelin
Deep Purple

各単語の頭文字が、LedZeppelinという風に大文字になってくれました。

DEEP PURPLEucwords()の中にstrtolower()をセットし、一旦小文字にした後に、各単語の頭文字だけ大文字にできました。

構文

ucwords(文字列 (, 区切り文字(任意)))

基本は今まで同様、文字列を設定するだけの関数ですが、上記のように任意で区切り文字も指定することで、区切り文字ごとに各単語の頭文字だけ大文字にできます。

ucwords関数で区切り文字も指定する

区切り文字で区切られた文字列でも、通常は1つの単語扱いとなります。

第二引数で区切り文字を指定することで、区切り文字ごとに単語の頭文字だけ大文字に変換してくれます。

 

以下のようにスラッシュで区切られた単語を、区切り文字を指定せずに出力したバージョンと、区切り文字を指定して出力したバージョンで見比べてみましょう。

Clash/ramones/nirvana

  • 全体の文字列の頭文字Cだけが大文字に変換された。

 

Clash/Ramones/Nirvana

  • 区切り文字ごとに各単語の頭文字CRNがそれぞれ大文字に変換された。

 

上記2つを見比べてみると、第二引数に区切り文字を入れた方が、単語ごとに頭文字だけ大文字になってくれましたね。

スポンサードリンク

  • このエントリーをはてなブックマークに追加
  • Pocket

コメントを残す

*