第8章 文字列

8.3 文字列を変換する

 本節では文字列を変換する際に使う組み込み関数を紹介します。これらは入力チェックのためよりも、実際に処理を進める際に使われることが多いです。

8.3.1 文字列を変換する関数

 文字列を変換する関数の代表として、アルファベットの大文字小文字を入れ替えるstrtoupper()関数とstrtolower()関数があります。strtoupper()関数を使うと全て大文字に変換され、strtolower()関数を使うと全て小文字に変換されます。

凡例:strtoupper()関数の呼び出し方

凡例:strtolower()関数の呼び出し方

 また、文字列の順番を逆にしたものを戻すstrrev()関数というものもあります。

凡例:strrev()関数の呼び出し方

そして、文字列の一部を抽出するsubstr()関数はよく使われる関数です。

凡例:substr()関数の呼び出し方

 この2つ目の引数として渡す「抽出を開始する桁」は、先頭を0から数え始めるので、何文字目から抽出したいのかを意識しながら設定するようにしてください。

 それでは、これらの関数を使ってみたプログラムを次項より紹介していきます。

8.3.2 文字列を変換する関数を使ったプログラム

 使用した関数によって文字列がどのように変換されるか確認するプログラムです。

ソースコード

ソース・フォルダー  :myproj_framework_basic/ch08
ファイル名      :str.php
アクセスURL    :http://localhost/myproj_framework_basic/ch08/str.php

➢ str.php

1<?php
2    // 文字列を用意
3    $strArray = array("Hello", "GoodBye", "thankU");
4?>
5<html>
6    <head>
7        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
8        <title>文字列を変換する</title>
9    </head>
10      <body>
11        <table>
12            <tr>
13                <th>文字列</th>
14                <th>大文字化</th>
15                <th>小文字化</th>
16                <th>逆順</th>
17                <th>抽出</th>
18            </tr>
19            <?php
20            foreach($strArray as $val){
21                    // 文字列とその変換結果を出力する
22                    echo "<tr>";
23                    echo"<td>" . $val . "</td>";
24                    echo"<td>" . strtoupper($val) . "</td>";
25                    echo"<td>" . strtolower($val) . "</td>";
26                    echo"<td>" . strrev($val) . "</td>";
27                    echo"<td>" . substr($val, 1, 5) . "</td>";
28                    echo "</tr>";
29                }
30            ?>
31        </table>
32    </body>
33</html>

実行結果

解説
 このstr.phpは、3行目で用意した配列を使い、それぞれの要素を文字列を変換する関数に渡しています。

 1つ目のstrtoupper()関数の出力結果は、すべて大文字のアルファベットに変換されています。


 2つ目のstrtolower()関数の出力結果は、すべて小文字のアルファベットに変換されています。


 3つ目のstrrev()関数の出力結果は、元の文字列の逆順に変換されています。


 最後のsubstr()関数の出力結果は、1桁目から5文字分抽出して画面に出力しています。抽出する桁から後ろが5文字未満の場合は、そのまま抽出できた分だけ出力しています。


ポイント

・アルファベットの大文字小文字を揃えたい時は、strtoupper()関数やstrtolower()関数を使う
・文字列の順番を逆順にしたい時はstrrev()関数を使う
・文字列の一部を抽出する時はsubstr()関数を使う

 今回は半角文字のアルファベットの文字列を使いましたが、もし全角文字で同様の処理を行いたい場合は、先頭に「mb_」をつけることで同じ機能を持ったマルチバイト文字列関数になります。対象の文字列によって使い分けられるようにしましょう。


NEXT>> 8.4 本章のまとめ

f