【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

【PHP】特定の文字位置を取得する方法

本記事では、PHPで特定の文字位置を取得する方法について解説しています。

PHPの学習におすすめ書籍
独習PHP 第4版
総合評価
( 5 )
メリット
  • PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
  • PHPによるWebアプリ開発の基礎・基本テクニックを学べる
楽天ブックス
¥3,740 (2024/02/26 19:37時点 | 楽天市場調べ)
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次

mb_strpos関数とmb_strrpos関数

特定の文字位置を取得したい場合は、mb_strpos関数またはmb_strrpos関数を使用します。使い方が全く同じのため、まとめて紹介します。

$result = mb_strpos($haystack, $needle [, $offset] [, $encoding]);
$result = mb_strrpos($haystack, $needle [, $offset] [, $encoding]);
構文解説
  • $haystack:対象の文字列を指定
  • $needle:検索したい文字列を指定
  • $offset:検索開始位置を指定(省略可能)
  • $encoding:対象文字列の文字コード(省略可能)

文字列を数える時は、1文字目は1ではなく0から数えます。

mb_strpos関数とmb_strrpos関数の違いは、文字列を検索する時に先頭から検索するか末尾から検索するかの違いです。mb_strpos関数は先頭から文字列を検索し、mb_strrpos関数は末尾から文字列を検索します。

mb_strpos関数とmb_strrpos関数を使用して、特定の文字位置を取得するサンプルコードを用意したので、動作確認してみましょう。

<?php
$str = '隣の客はよく柿食う客だ';

echo mb_strpos($str, '客'); // 2
echo mb_strrpos($str, '客'); // 9

echo mb_strpos($str, '客', 3); // 9
echo mb_strpos($str, '脚'); // false

1つ目と2つ目の関数は、第一引数に対象の文字列が代入されている変数「$str」を指定し、第二引数に検索したい文字列「客」を指定しています。実行結果を確認すると、mb_strpos関数は先頭から文字を検索するため1つ目の客にヒットしその位置を返しています。mb_strrpos関数は末尾から文字を検索するため2つ目の客にヒットしその位置を返しています。

3つ目のmb_strpos関数は、1つ目と2つ目の関数と同様に引数を設定していますが、検索開始位置を指定する第三引数に「3」を指定しています。すると、mb_strpos関数は変数$strに代入されている文字の4文字目「は」から検索をします。そのため、1つ目の客ではヒットせず2つ目の客の位置を返しています。

4つ目のmb_strpos関数は、第二引数に対象の文字列に存在しない文字列を指定しています。mb_strpos関数は、検索に一致するものがなければfalseを返すためブラウザには何も表示がされません。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次