作成日:2017-11-17, 更新日:2020-11-30
strpos - 文字列内の部分文字列が最初に現れる場所を見つける
- 存在するかチェック
-
if ( strpos(文字列, 検索文字) === false ) { // 見つからなかった(※「==」じゃなくて「===」を使う) } else { // 見つかった(※一番最初は1文字目じゃなく0文字目) }
- 出現位置の取得
-
$str = 'abcdef abcdef'; $pos = strpos($str, 'abc'); // 「$str」から「abc」の位置取得
strrpos - 文字列内の部分文字列が最後に現れる場所を見つける
「str」と「pos」の間にもう一つ「r」が入った「strrpos」。
使いかたは「strpos()」も「strrpos()」も基本、同じ。
▼strpos()とstrrpos()
$str = 'a-ef-bcd-ef-ghi'; $seed = 'ef'; var_dump(strpos($str, $seed)); // int(2) var_dump(strrpos($str, $seed)); // int(9)
strlen、mb_strlen - 文字列の長さを得る
- 文字数ではなくバイト数の取得
-
echo strlen(文字列);
- 文字数の取得
-
echo mb_strlen(文字列);
strstr — 文字列が最初に現れる位置以降(or 位置の前)の取得
- 対象以降
-
$email = 'name@example.com'; echo strstr($email, '@'); // 「@」以降を取得するので「@example.com」を表示
- 対象の前
-
$email = 'name@example.com'; echo strstr($email, '@', true); // 「@」の前を取得するので「name」を表示(※PHP5.3.0以降)
str_replace — 検索文字列に一致したすべての文字列を置換する
- 基本
-
echo str_replace("%body%", "black", "bodytext=%body%"); // 「%body%」を「black」に置き換えるので「bodytext=%body%」が「bodytext=black」となる
- 複数の対象を同じものにする
-
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U"); echo str_replace($vowels, "", "Hello World of PHP"); // $vowelsで指定された文字を「空白」に置き換えるので「Hll Wrld f PHP」となる。
- まとめて置き換え
-
$phrase = "You should eat fruits, vegetables, and fiber every day."; $healthy = array("fruits", "vegetables", "fiber"); $yummy = array("pizza", "beer", "ice cream"); echo str_replace($healthy, $yummy, $phrase); // $healthyに対応する位置の$yummyに置き換える(※$healthy[0]は$yummy[0]に置きかえ) // You should eat pizza, beer, and ice cream every day となる
※第4引数を使うと個数を知ることができる。
・PHP 文字列に単語が何個含まれるか確認(str_replace())
substr — 文字列の一部分を返す
※全角を含むときは「mb_substr()」を使う
- 基本
-
substr(文字列, 開始位置, 取得バイト)
- 1文字目以降(最初から全部)
-
substr(文字列, 0)
- 2文字目以降
-
substr(文字列, 1)
- 1文字目から5文字
-
substr(文字列, 0, 5)
- 2文字目から5文字
-
substr(文字列, 1, 5)
- 最後の1文字
-
substr(文字列, -1)
- 最後から5文字目以降
-
substr(文字列, -5)
- 最後から5文字目以降の3文字
-
substr(文字列, -5, 3)
- 最後の1文字削除
-
substr(文字列, 0, -1)
- 2文字目以降で最後の1文字削除
-
substr(文字列, 1, -1)