*

php:文字列内で対象が現れる場所を見つける[strpos]など

公開日: : php


文字列内の部分文字列検索。用途に合わせて色々と関数が用意されているので記憶の片隅に置いておくと良いかと思います。

 

関数の概要

今回説明する関数は、文字列内からある文字列を検索して出現した場所を数値で返すものです。

  • strpos():文字列内の部分文字列が最初に現れる場所
  • stripos():文字列内の部分文字列が最初に現れる場所(大文字/小文字区別なし)
  • strrpos():文字列内の部分文字列が最後に現れる場所
  • strripos():文字列内の部分文字列が最後に現れる場所(大文字/小文字区別なし)

 

基本的な使用方法はどれも同じなので、strposを用いて使用方法と使用例を記載します。

 

strposの使用方法

strpos関数の説明

mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

$haystack:対象文字列

$needle:検索文字列

$offset:検索開始位置(0が先頭、未指定は0)

返り値:

needleが見つかった場合はhaystackの先頭からの相対位置を返します。

開始位置は0となります。needleが見つからない場合はFALSEを返します。

 

strpos使用例

//検索対象文字列
$haystack = "aabbccddaaffgg";

echo strpos($haystack, "aa");
echo strpos($haystack, "aa", 3);
echo strpos($haystack, "cc");
echo strpos($haystack, "oo");

//出力結果
0
8
4
false

また、見つからなかった場合の返り値「FALSE」を判定して処理を記述する場合は「===」か「!==」を使用します。

//検索対象文字列
$haystack = "aabbccddaaffgg";
//検索文字列
$needle = "cc";

$result = strpos($haystack, $needle);
//「===」を使用する場合
if($result === false) {
  echo  $needle . "は見つかりませんでした。";
} else {
  echo  $needle . "が見つかりました。";
}

//「!==」を使用する場合
if($result !== false) {
  echo  $needle . "が見つかりました。";
} else {
  echo  $needle . "は見つかりませんでした。";
}

 

今回は文字列内から部分文字列が見つかった位置を返す関数でしたが、見つかった位置から最後までの文字列を返す関数などもあるので、次回以降に使い方を掲載したいと思います。

ad_right_top

関連記事

blog_logo_small

php:文字列を特定文字で分割する方法

プログラムを書いていると結構頻繁に遭遇する文字列分割。phpでの書き方を掲載します。 &nbs

記事を読む

blog_logo_small

php:関数の命名について

DBに登録されている日時と現在日付から5日前である事をチェックする関数名で 下記で一番わかりや

記事を読む

blog_logo_small

intl PEC のインストール

MediaWikiの利用において「intl pecl 拡張機能」を使用する場合はインストールが必要で

記事を読む

blog_logo_small

php:文字列分割関数explodeとpreg_splitの速度について

以前の記事で文字列分割を行うexplodeとpreg_splitを紹介した際に、explodeの方が

記事を読む

blog_logo_small

phpでRSSを取得して読み込む方法

ブログなどで新着記事の配信に利用されているRSSをphpで読み込んで表示する方法について掲載します。

記事を読む

blog_logo_small

php:ファイルの更新日時を取得し、クエリとして付与する

cssやjsを更新した際に、キャッシュされてしまい表示が更新されないという事が良くあると思います。更

記事を読む

blog_logo_small

php:バージョンの確認方法

インストールされているphpのバージョンを確認する方法です。   コマンドで確認す

記事を読む

blog_logo_small

php:配列でキーの存在確認をする方法

ソースを書いていて何度が調べることがあったので備忘の為に残しておきます。   配列

記事を読む

blog_logo_small

php:for文の終了条件には複雑な処理を書かない

php で for文を使ってループ処理をするときの注意書きです。 for文の構造は下記のような

記事を読む

blog_logo_small

php:配列の要素を連結して文字列出力[implode]

ログ出力などで配列の中身を出力したい場合に、簡単に配列を連結して文字列化する方法です。 &nb

記事を読む

google以外広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

ad_right_top

linux-pen
【cron】秒間隔で定期実行する為の設定方法

コマンドを定期実行させたい場合に利用するcronですが、普通に利用する

blog_logo_small
【Apache】 ReverseProxy(リバースプロキシ)を設定してサブディレクトで別サーバーの内容を表示

今回はApacheのリバースプロキシ設定について紹介したいと思います。

blog_logo_small
【Apache】 Aliasを設定してサブディレクトでDocumentRoot以外を参照する

今回はApacheのAlias設定について紹介したいと思います。この方

no image
2015:新年のご挨拶

明けましておめでとうございます。 昨年はたくさんの方々に当ブログ

blog_logo_small
MySQL:外部ホストからのDBアクセス方法

MySQLではデフォルトで外部ホストからのアクセスを許可していないので

→もっと見る

  • アクセスカウンター
PAGE TOP ↑