PHP - よく使う関数 - 文字列 - 検索・3桁区切り


 クラウディア


1. 概要
2. strstr, strpos 文字列の検索
3. strrpos 末尾から文字列の検索
4. pathinfo ファイル・パスの情報を取得
5. str_contains 含んでいるか
6. number_format 3桁区切りの書式
7. 参考サイト

1. 概要

 本ページは、文字列の検索、他について記述します。

2. strstr, strpos 文字列の検索

 文字列の検索を行うには、「strstr()」を使用します。

$結果 = strstr($検索対象の文字列, $検索する文字列);
 文字列が見つからない場合は、「false」が返ります。  見つかった場合は、文字列が最初に現れた位置から末尾までの文字列を返します。  「stristr()」にすると大文字小文字を区別しません。  だがしかし、「PHP」のマニュアルによれば、文字列の有無のみを検索する場合は、「strpos()」の方がメモリ消費が少なく、高速だそうです。  リターン値を考えればわかりますが。

$結果 = strpos($検索対象の文字列, $検索する文字列);
 文字列が見つからない場合は、「false」が返ります。  見つかった場合は、先頭からの相対位置を 0 始まりで返します。

3. strrpos 末尾から文字列の検索

 「strpos()」が、文字列を先頭から検索するのに対し、「strrpos()」は。

strrpos(string $haystack, string $needle, int $offset = 0): int|false
 の形式で、末尾から検索します。  「haystack」が検索対象の文字列で、「needle」が、検索する文字列になります。  戻り値は、検索する文字列が存在しない場合は、「false」で、存在する場合は、『最後に』あらわれる位置になります。  「offset」は、まだよく理解できていないので、割愛。追而書

4. pathinfo ファイル・パスの情報を取得


$情報 = pathinfo ( string $ファイル・パス文字列 [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )
 オプションは次の意味を持ちます。
オプション 意  味
PATHINFO_DIRNAME ディレクトリ部(末尾の / は取り除かれている)
PATHINFO_BASENAME 拡張子付きのファイル名
PATHINFO_EXTENSION 拡張子
PATHINFO_FILENAME 拡張子を除いたファイル名

5. str_contains 含んでいるか

 「PHP 8.0.0」から導入された関数です。  「python」の「in」演算子のように、文字列が含まれているかどうかを調べる関数です。

str_contains(string $haystack, string $needle): bool
 「haystack」が検索対象の文字列で、「needle」が、検索する文字列になります。  戻り値は、検索する文字列が存在しない場合は、「false」で、存在する場合は「true」になります。

6. number_format 3桁区切りの書式

 数値を出力しようとするとき、キロ・メガ・ギガの単位で表示させたいときに使います。

string number_format ( float $number [, int $decimals = 0 ] )
string number_format ( float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = "," )

<?php
$kiro = 1000;
$mega = 1000000;
$giga = 1000000000;

print('$kiro = ['.number_format($kiro)."]\n");
print('$mega = ['.number_format($mega)."]\n");
print('$giga = ['.number_format($giga)."]\n");
 これを実行すると以下の結果が得られます。

$kiro = [1,000]
$mega = [1,000,000]
$giga = [1,000,000,000]

preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] ) : array
 「.csv」や、引数の解釈では、わたしはこちらを多用します。  「PHP: preg_split - Manual」に、カンマとホワイトスペースで分割する例があって、そのまま使っています。  こう、書いてありますな。

<?php
// カンマまたは " ", \r, \t, \n , \f などの空白文字で句を分割する。
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords);

7. 参考サイト

 本ページは、下記のサイトを参考にさせていただきました。
PHP: strrpos - Manual」
「PHP 文字列から文字を検索する(後ろから)」
「PHP で文字列の最後の文字を取得する方法」
「PHP: str_contains - Manual

AbemaTV 無料体験