PHPには文字列を扱う関数が多く存在します。
文字列を比較したり、データが間違っていないかを調べる際に便利です。簡単な関数を使ってどんなふうに文字列を操作するのかを見てみたいと思います。
文字列を比較する関数 strcmp()
strcmp関数の引数に設定した2つの文字列が比較されます。
strcmp(文字列1, 文字列2);
文字列の比較をif文に組み込んでみました。
<?php $a1 = "abcd" $a2 = "efgh" if(strcmp($a1, $a2) == 0){ 文字列が一致したときの処理; } else{ 文字列が一致しないときの処理; } ?>
strcmpで変数「$a1」と「$a2」の文字列を比較しています。
strcmpでは引数に設定した2つの文字列が同じ場合、戻り値0を返します。
ですからこのコードの場合、「strcmp関数 == 0」と記述することにより文字列が一致したら1つ目、一致しなかったら2つ目の処理が実行されることになります。
文字列の長さを調べる関数 strlen()
strlen関数を使うと、引数に設定した文字列の長さを調べることが出来ます。
strcmp(文字列);
簡単に見てみましょう。
<?php $a1 = "abcde"; echo strlen($a1); ?>
ここでは変数「$a1」の文字数を調べ出力しているので、5が出力されます。
文字列を変換する関数
大文字を小文字に変換
引数に設定した文字列を小文字に変換します。
strtolower();
小文字を大文字に変換
引数に設定した文字列を大文字に変換します。
strtoupper();
文字列の一部を取り出す関数 substr()
1番目の引数で対称の文字列を設定し、2番目の引数で取り出したい文字が何文字目かを決め、3つ目の引数で文字の長さを決めます。3つ目がない場合最後まで取り出されます。
substr();
これは少し分かりづらいので実際に見てみます。
<?php $a1 = abcdefg; echo substr($a1, 1 ,3); ?>
1つ目の引数で「$a1」の文字列を対象にしました。
2つ目の引数で取り出したい文字の先頭が何文字目かを決めます。ここでは1を設定しましたが、PHPプログラムでは数字を0から数えるので「abcdefg」の2文字目がスタートとなります。
3つ目で取り出す文字数を3と設定しました。その結果「bcd」が出力されることになります。
最後に
PHPは文字列を扱うことに長けています。
フォームで送信されてきたデータも、文字列の関数で確認することで安全に受け取ることが出来ます。エラーを未然に防ぐことになるので、ほかの関数も調べておきたいです。