PHP

【PHPの基礎】PHPにおける文字列操作のまとめ!(連結|検索|置換|分割|切り出し)

文字列操作のまとめ

今回解決できる内容

✔️PHPにおける文字列操作をまとめて知りたい!

今回はPHPにおける文字列操作のまとめてみました。

実際の開発でもよく使われる関数なども紹介するので是非マスターして下さい!

これから仕事と両立してスキルを身につけたい方は下記に相談してみましょう。

>>【DMM WEBCAMP】 完全未経験からエンジニアを目指したい方へ!

※無料カウンセリングで、今悩んでいることを気軽にプロに相談できます

文字列の連結

phpでは、文字列や変数を連結することができる文字列演算子が存在します。

結合演算子「.(ピリオド)」結合代入演算子「.= (ドットイコール)」です。

是非今回でマスターしましょう!

変数や演算子の基礎に関しては下記の記事を参考にして下さい!

>>【PHPの基礎】変数、型の種類をマスターしよう!

>>【PHPの基礎】演算子をマスターしよう!

「.(ピリオド)」で文字列を連結する

文字列演算子「.(ピリオド)」でつないだ文字列や変数を結合させることができます。

文字列を直接つないだり、文字列が格納された変数をつないだりできます。

実際の例を確認してみましょう!

<?php

echo '私は'.'サラプロです';
 
?>

結果は下記の通りです。

「私は」という文字列と「サラプロです」という文字列が「.(ピリオド)」によって結合されて、「私はサラプロです」が出力されることがわかります。

「.= (ドットイコール)」文字列を連結する

結合代入演算子「.= (ドットイコール)」は式の「=(イコール)」の右側にある文字列を左側に追記していくイメージです。

実際の開発では、長文をブロックに分けて処理したり、繰り返しを追加する際などによく使われます。

実際の例を確認してみましょう!


<?php

$text='はじめまして';
$text.='サラリーマン';
$text.='プログラマーの';
$text.='サラプロです';

echo $text;

?>

結果は下記の通りです。

「$text」に「.= (ドットイコール)」によって文字列が追加されていき、「はじめましてサラリーマンプログラマーのサラプロです」と1行に結合されて表示されます。

文字列の結合の詳細に関しては下記の記事を参考にして下さい!

>>【PHPの基礎】文字列の結合をマスターしよう!

文字列の位置検索(strpos関数)

strops関数は何文字目に検索対象の文字が存在するかを返します。検索した文字列が見つからなかった場合はFALSEを返します。

書き方は下記の通りです。

strpos(検索対象の文字列, 検索する文字列 [, 開始位置] )

<?php

echo strpos('sarapuro_PHP', '_');

?>

結果は下記の通りです。

実際の開発では検索文字列の有無を条件分岐する場合が多いので、そちらも記載します。

<?php

$str='sarapuro_PHP';
if(strpos($str, '_')!==false)
{
    echo '文字列が存在します';
}else{
    echo '文字列が存在しません';
}

?>

結果は下記の通りです。

アルファベットの大文字、小文字を区別するので、完全に一致する文字列で検索しましょう。

特定の文字列を検索方法の詳細は下記の記事を参考にして下さい!

>>【PHPの基礎】特定の文字列の検索方法をマスターしよう!(strpos,strstr,preg_match)

文字列の置換(str_replace関数)

str_replace関数とは文字列内に指定した箇所を他の文字列に変換することができる関数です。

下記のように記述します。

str_replace('検索を行う文字列','置き換えを行う文字列','対象の文字列');

第1引数:検索を行う文字列

第2引数:検索した文字列の置き換えを行う文字列

第3引数:対象の文字列

実際に例を見てみましょう!

<?php

$language='Japanese,English,Chinese';
$replace = str_replace('Chinese', 'English', $language);

echo $replace;

?>

結果は下記の通りです。

第一引数に「Chinese」を、第二引数に「English」を指定している為、

「$language」内のChinese→Englishに置き換えたものが出力されています。

str_replace関数の詳細に関しては下記の記事を参考にして下さい!

>>【PHPの基礎】str_replace関数による置換方法をマスターしよう!

文字列の分割(explode関数)

explode関数とはある文字列を指定した文字列を使って分割して配列にできる関数です。

下記のように記述します。

第1引数:区切り文字

第2引数:任意の文字列

第3引数:返される配列の最大要素数

explode(第1引数,第2引数,第3引数);

実際にexplode関数を使用してみましょう。

<?php

$languages='Japanese,English,Chinese';
$language=explode(',',$languages);

print_r($language);

?>

結果は下記の通りです。

第1引数に「,」が、第2引数に「$languages」が配置されているので、「$languages」の要素を「,」で分割して配列にします。結果として上記のような配列を取得できます。

詳細に関しては下記の記事を参考して下さい!

>>【PHPの基礎】文字列の分割するexplode関数をマスターしよう!

文字列の切り出し(substr関数)

substr関数とは文字列中の1部を抽出する際に使用する関数です。実行する指定した文字列を返します。

下記のように記述します。

substr( 対象文字列, 開始位置 , 文字数);

第1引数:抽出対象の文字列の指定

第2引数:抽出する文字列の開始位置を指定(1文字目を0とする)

第3引数:抽出する文字列の長さを指定

第三引数の指定がなかった場合、第二因数で指定した開始位置以降のを全ての文字列を抽出負の数を指定した場合は後ろから数えた位置まで切り出します

実際に使ってみましょう!

<?php

$str='abcdefg';

echo substr($str,2);
echo '<br>';

echo substr($str,1,4);
echo '<br>';

echo substr($str,-2);
echo '<br>';

?>

結果は下記のようになります。

1つ目は抽出の開始位置が「2」の為、cからgまでが表示されます。

2つ目は抽出の開始位置が「1」で、抽出文字数が「4」の為、「bcde」が表示されます。

3つ目は負の数が指定されているので、末尾から数えて’2’文字を抽出するので、「fg」が表示されます。

substr関数の詳細に関しては下記の記事を参考にして下さい!

>>【PHPの基礎】文字列の一部を取得するsubstr関数をマスターしよう!

文字列の除去(trim関数)

trim関数とは、文字列の先頭と末尾にある空白を取り除いたり、指定した文字を取り除いたりできる関数です

書き方は下記の通りです。

trim(文字列,'取り除きたい要素');

文字列の先頭と末尾以外にある場合は、取り除けません!

要素を指定しない場合と指定した場合をそれぞれ確認してみましょう!

取り除く要素を指定しない場合

取り除く要素を指定しない場合は、空白が取り除かれます。

取り除ける空白は下記の通りです。

文字名前
「 」半角スペース
「\t」タブ
「\n」リターン
「\r」改行
「\0」null文字
「\x0B」垂直タブ

全角スペースは取り除けません!

実際の使い方は下記の通りです。

<?php

$text1='私は';

//前後に空白を挿入します
$text2= '     サラプロです    ';

//trim関数で前後の空白を取り除きます
$trim= trim($text2);

$text3='よろしくおねがいします';

//それぞれの文章を確認します
echo $text1.$text2.$text3;
echo '<br><br>';
echo $text1.$trim.$text3;

?>

結果は下記の通りです。

少々分かりづらいですが、 「サラプロ」 の文字列の前後の空白が取り除かれて表示されているのがわかります。

取り除く要素を指定する場合

trim関数は第二引数を指定することで、空白以外に文字列の先頭と末尾にある文字を取り除くことができます

実際に使用してみましょう。

<?php
$text="hello abc hello";
$trim=trim($text,'hello');

echo $trim;

?>

結果は下記の通りです。

文字列の前後にある「hello」が取り除かれたのがわかります。

trim関数の詳細は下記の記事を参考にして下さい!

>>【PHPの基礎】trim関数(空白や指定文字の削除)をマスターしよう!

文字列の長さを取得(mb_strlen関数)

mb_strlen関数とは文字列の長さを取得することができる関数です

書き方は下記の通りです。

mb_strlen ( string 文字列 [, エンコーディング] );

エンコーディング名の例として「UTF-8」、「Shift-JIS」、「EUC-JP」等が挙げられます!

実際の書き方は下記の通りです。

<?php 

$string1='サラプロ';

echo(mb_strlen($string1,'UTF-8'));

echo'<br>';

$string2='PHP';

echo(mb_strlen($string2,'UTF-8'));

 ?>

結果は下記の通りです。

それぞれ「サラプロ」が4文字、「PHP」が3文字なので上記のような結果になります。

mb_strlen関数の詳細は下記の記事を参考にして下さい!

>>【PHPの基礎】文字列の長さを取得するmb_strlen関数をマスターしよう!

独学につかれた方へ

まとめ

今回解説した内容

✅PHPにおける文字列操作のまとめ

今回は文字列操作に関して詳しくご説明しました!

是非マスターしていきましょう!