Developer

【PHP基礎】様々な関数②
2020.12.31
Lv1

【PHP基礎】様々な関数②

様々な関数②

前回に引き続き、数回に渡って、
PHP公式で用意されている便利な関数を紹介していきます!

■substr関数

https://www.php.net/manual/ja/function.substr.php

substr関数は、文字列の一部を返す関数です。

●構文
substr(string, start, [length])

●引数

string 元の文字列
start 正 ⇒ string の 0 から数えて start番目から始まる文字列を返す
負 ⇒ string の後ろから数えて、start番目から始まる文字列を返す
length 正 ⇒ start から length文字数分返す
負 ⇒ string の終端から、文字数分が省略される(省略可能)

●戻り値

データ型 string
値の説明 string の一部を返す。失敗した場合は false を返す

▼補足
バイト数ではなく、文字数で調べる場合には mb_substr関数を使います。

●サンプル

<?php
$str = "abcdefghijk";
echo substr($str, 4); // 4文字目以降を切り取って表示
echo "<hr>";
echo substr($str, 4, 3); // 4文字目以降から3文字分切り取って表示(5~7文字目)
echo "<hr>";
echo substr($str, -4); // 後ろから4文字分切り取って表示
?>

●結果

■str_replace関数

https://www.php.net/manual/ja/function.str-replace.php

str_replace関数は、文字列を置換する関数です。

●構文
str_replace ( search, replace, subject, [count] )

●引数

search 検索する値
replace 見つかったsearchを置き換える値
subject 置換対象となる文字列
count 長置換した箇所の個数が格納される。変数を渡す(省略可能)

●戻り値

データ型 string
値の説明 置換後の文字列を返す

●サンプル

<?php
// 基本の使い方
$a = str_replace("_", "-", "abc_def_ghi"); //「abc_def_ghi」の「_」を「-」に置換
echo $a;
echo "<hr>";
// countを使う例
$b = str_replace("_", "", "abc_def_ghi", $count); //「abc_def_ghi」の「_」を「」に変換し、変換した回数を$countに代入
echo $b;
echo "<br>\n";
echo $count;
echo "<hr>";
// 配列を使う例
$b = str_replace("banana", "melon", ["apple", "banana", "orange"]); // 配列内の要素に「banana」があれば「melon」に変換
print_r($b);
?>

●結果

■explode関数

https://www.php.net/manual/ja/function.explode.php

explode関数は、文字列を指定の文字列で分割した配列を返します

●構文
explode( delimiter, string, [limit] )

●引数

delimiter 区切り文字列
string 入力文字列
limit 配列の要素数を指定します。最後の要素には、string の残りの文字列が全て含まれます。(省略可能)

●戻り値

データ型 string
値の説明 string の内容を delimiter で分割した文字列の配列を返します

●サンプル

<?php
$str = "apple,banana,orange"; 
// limitナシ
$arr1 = explode(",", $str); // 「,」区切りの文字列を配列に変換
print_r($arr1);
echo "<hr>";
// limitアリ
$arr2 = explode(",", $str, 2); // 「,」区切りの文字列を要素が2つの配列に変換
print_r($arr2);
echo "<hr>";
// 区切り文字が無い
$arr3 = explode(":", $str); // 「:」が文字列に存在しないため変換されていない
print_r($arr3);
?>

●結果

■implode関数

https://www.php.net/manual/ja/function.implode.php

implode関数は、配列の各要素を指定の文字列で連結して、1つの文字列を返します。

●構文
implode( glue, piecies )

●引数

glue 連結文字列
piecies 連結したい文字列の配列

●戻り値

データ型 string
値の説明 配列の要素を、glue文字列で連結した文字列を返します。

●サンプル

<?php
$arr = ["aaa", "bbb", "ccc"];
// ハイフンで連結
$str1 = implode("-", $arr); // 「-」区切りの文字列に変換
echo $str1;
echo "<hr>";
// そのまま連結(空文字列で連結)
$str2 = implode("", $arr);// 「」区切りの文字列に変換(そのまま結合する)
echo $str2;
echo "<hr>";
?>

●結果

■前回記事のドメイン取得について

前回の記事ではドメイン取得の際に@まで取得してしまいましたが、
今回紹介した substr, str_replace を使用すると@を除いたドメインに変換することができます。
以下のサンプルを元に前回のサンプルを修正して、正しいドメインが取得できるか試してみましょう。

$email = "test@email.com";
$domain = strstr($email, '@'); // $domainには「@email.com」が入っている
// substrで変換する場合
$domain = substr($domain, 1); // $domainの1文字目以降を取得し上書き
echo $domain.'<br>'; // 「email.com」が出力
// str_replaceで変換する場合
$domain = str_replace('@', '', $domain); // $domainの@を空文字に変換し上書き
echo $domain.'<br>'; // 「email.com」が出力

次回も引き続き、今回のような便利な関数を紹介しますので
ぜひ参考にしてください。

PHP基礎 連載目次リンク

PHP基礎 連載目次