![見出し画像](https://assets.st-note.com/production/uploads/images/87915267/rectangle_large_type_2_cb4219a9c15663bf1366b87af61cff13.png?width=1200)
Photo by
toriumiyusa
[PHP]文字列を操作する関数まとめ
今回は文字列に関して操作できる関数をまとめてみました。
これらの関数を使って「しりとり」の正誤判定などのプログラムなども作れるようになります。
substr(), mb_substr()
$str = 'apple';
//0番目から1文字を取得
echo substr($str, 0, 1)."\n";
//2番目から末尾までを取得
echo mb_substr($str, 2)."\n";
$mb_str = 'りんご';
//末尾から2番目から末尾までを取得
echo mb_substr($mb_str, -2)."\n";
/* 実行結果 */
a
ple
んご
substr()を使って特定の文字列を取得できます。ただし、substr()はマルチバイト文字に対応しないので日本語を使う場合、mb_substr()を使えます。
substr(文字列, 何番目から, 何文字);
mb_substr(文字列, 何番目から, 何文字);
substr_replace()
$str = 'apple';
//1番目から2文字をaに変更(pp->a)
echo substr_replace($str, 'a', 1, 2)."\n";
//3番目から末尾までをappに変更(le->app)
echo substr_replace($str, 'app', 3)."\n";
/* 実行結果 */
aale
appapp
substr_replace()で対象の文字列について指定文字列で置換することができます。
substr_replace(対象の文字列, 指定文字列, 何番目から, 何文字);
strpos(), mb_strpos()
$str = 'apple';
//appleから"pl"が何番目に出現するかを特定
echo strpos($str, 'pl')."\n";
$mb_str = '表裏裏裏表裏裏表表表';
//表が三連続で出現するのは何番目か特定
echo mb_strpos($mb_str, '表表表')."\n";
/* 実行結果 */
2
7
strpos()で対象の文字列から指定した文字列が何番目に現れるかを特定することができます。
'apple'の文字列に'pl'という文字列が何番目に現れるか特定する場合、上記のようにstrpos($str, 'pl');で取得できます。
strpos(対象の文字列, 指定文字列);
mb_strpos(対象の文字列, 指定文字列);
こちらもマルチバイト文字に対応していないため、日本語を使いたい場合はmb_strpos()を使うようにしましょう。
explode()
$str = 'apple,orange,banana,grape';
$str_list = explode(',', $str);
print_r($str_list);
/* 実行結果 */
Array
(
[0] => apple
[1] => orange
[2] => banana
[3] => grape
)
文字列を分割するときに使える関数がexplode()です。上記の例では変数$strを「,」で区切って$str_listというリストに分割しています。
ちなみに、リストの中身を確認する場合はechoではなくprint_rを使った方が見やすいです。
explode(区切り文字, 文字列);
今回は文字列操作でよく使う関数をまとめてみました。これら以外のもまだまだあると思うのでその都度勉強していきたいと思います。
以上です。