フルスタックエンジニアのノウハウ
2021.03.18    2021.04.04

文字列関数とは?分かりやすく解説

文字列関数とは?分かりやすく解説

この記事の動画版はこちら

チャンネル登録お願いします!


今回は「文字列関数」とは何か?ということについて、初心者向けに分かりやすく解説していきたいと思います。


この記事で分かる事

・文字列関数とは
・文字列関数の種類
・実際の開発での用途



文字列関数とは?


文字列関数とは、プログラミングを行う中で、文字列に対して色々な操作を行うための関数群のことです。


例えば、文字列の長さを取得したり、文字列の中に特定の文字が含まれているかどうかを検索したり、文字列の中の特定の文字を別の文字に置き換えたり、といった便利な関数が多く用意されています。


こういった文字列処理は、どのようなアプリを作る場合にも大抵行うことになるため、多くのプログラミング言語には似たような文字列関数があらかじめ用意されています。



例えば、PHPの関数リファレンスページを見ると、このように多くの文字列関数が用意されています。



PHPリファレンス(文字列関数)



よく使われる文字列関数


このように、PHPには多くの文字列関数が用意されていますが、今回は、その中でもよく使う関数を4つほどご紹介します。


まず1つ目は「strlen」または「mb_strlen」という関数です。
これは、「文字列の長さを取得」したいときに使います。


例えば「Hello」という文字列の長さを取得すると「5」という数値を返してくれます。




ただし、ここで取得されるのは正確には「文字数」ではなく「バイト数」になります。


半角文字の場合は、1文字=1バイトなので問題ありませんが、日本語などの全角文字(マルチバイト文字)の場合は、正確な文字数を取得することが出来ません。


そのために用意されているのが、「mb_strlen」という関数です。


頭の「mb」というのは「マルチバイト」の略になっており、日本語などのマルチバイト文字列の長さを取得したい場合はこちらを使います。


実際のアプリ開発では、例えばユーザーが画面から入力した文字列が、最大文字数をオーバーしていないかどうかをチェックする際に使ったりします。



2つ目は「substr」または「mb_substr」という関数です。
サブストリングと呼ばれたりもします。
これは、文字列の中から「特定の1部分だけを抜き出したい」ときに使います。


例えば、このような「ABCDEFG」という文字列の中から、「BCD」の部分だけを抜き出すことが出来ます。




実際のアプリ開発では、例えば連結された長いコードの中から、特定のコードを抜き出す場合に使ったりします。




3つ目は「strpos」または「mb_strpos」という関数です。
これは、文字列の中に「特定の文字列が最初に現れる位置」を検索します。


例えば、「今日は、いい天気ですね」という文字列に対して「天気」という文字を検索すると、6という数値が返ってきます。




注意点としては、最初の1文字目は「0」からスタートするため、7文字目の場合は「6」という位置が返ってきます。


実際のアプリでは、文字列の中に「特定の文字が含まれているかどうか」をチェックする際に使うことが多いです。


また、似たような関数として、特定の文字で「始まっているかどうか」をチェックする「str_starts_with」や、特定の文字で「終わっているかどうか」をチェックする「str_ends_with」という関数もあります。


これらは、PHPの最新バージョンである「バージョン8」から新たに使えるようになった関数です。



4つ目は「str_replace」という関数です。
これは、文字列の中にある特定の文字を「別の文字に置き換えたい」ときに使います。


例えば、このような「##name##さん」という文字列の「##name##」の部分を「徳田」に置き換えることで「徳田さん」という文字列にすることが出来ます。




メール送信機能を作る時など、テンプレート文面の各所にある差し替え用ワードに、実際の個人情報を割り当てる際に使ったりします。


また、置き換える文字を未指定にすると、特定の文字を削除する用途にも使えます。


例えば、このような郵便番号からハイフンを取り除いて、数値だけの形式になるようにデータを整形する際に使ったりもします。




まとめ


以上、文字列関数の中からよく使う4つの関数をご紹介しました。


この他にも、配列をカンマ区切りの文字列に変換してくれる「implode」や、逆に文字列を配列に変換してくれる「explode」、通常の改行をHTMLの<br>タグに一括変換してくれる「nl2br」など、PHPには便利な文字列関数が多く用意されているので、開発を行う際は是非活用していきましょう!


おすすめ記事