2024年03月28日

7.PHPの文字列操作関数

文字列を操作するPHP関数には下記の2つ種類があります。

文字列で操作するPHP関数

正規表現で操作するPHP関数

 

文字列で操作するPHP関数

文字列で操作する関数には下記の様な物があります。

関数 何ができるか(抜粋)
strpos()

ストリング・ポジション

指定した文字列があるかをチェックします。

­[事例]

■指定した文字列があるかを判断する

■現在の表示ページを判断する

正規表現の文字列判断は下記を利用します

preg_match()

str_replace()

ストリング・リプレース

指定した文字列を他の文字列に置き換えます。

[事例]

■文字列を指定文字で置換する

■文字列を配列データで置換する

■配列データを配列データで置換する

■改行コードを「,」に置き換える例

正規表現でリプレースする場合は下記関数を使います

preg_replace()

trim()

トリム

文字列の前後の不要な文字を削除します。

[事例]

■空白文字を削除する

■文字列の前後にある[/]を削除する

■文字列の前後にある複数の文字列を削除する

explode()

エクスプロード

文字列を区切り文字で分割して配列にします。

[事例]

■「,」で区切られた文字列を配列に変換

■空白で区切られて文字列を配列に変換

正規表現で配列にする場合は下記関数を使います

preg_split()

implode()

インプロード

配列を指定した区切り文字で区切った文字列にします。

[事例]

■配列を「,」で区切られた文字列に変換する

in_array()

インアレー

配列の中に指定した文字があるかをチェックします。

[事例]

■配列の中にある数値をチェックする。

intval()

イントバリュ

文字を整数に変換します。

[事例]

■文字列を整数に変換する

isset()

イズセット

変数に値がセットされているかをチェックします。

[事例]

■変数に値がセットされているかを判定する

■複数の変数の値を判定する

■チェックボックスに値が設定されているかを判定する

sprintf()

ストリング・プリント・フォーマット

文字列の中に指定フォーマットの文字や整数を挿入します

[事例]

■文字列の中にテキストや数字を挿入する

■数字の前に0を付与する

 

正規表現で操作するPHP関数

下記関数は正規表現で指定する必要があります。

1.正規表現とは

正規表現とは、指定したい文字列をパターンで表記する方法です。

 

2.PHPの正規表現

PHPの正規表現は正規表現をデリミタで括ります

例) '/正規表現/'

上記は / (スラッシュ)をデリミタとした例です。

デリミタは、英数字、バックスラッシュ、空白文字以外の任意の文字をデリミタとして使うことができます。

一般的には / (スラッシュ)以外に # (ハッシュ記号)~ (チルダ) が良く利用されます。

最低限、覚えたい正規表現

対象文字列 正規表現及び解説
itemという文字列
'/item/'

/を文字として指定したい場合は、他のデリミタを利用します。

'#/#'
item又はphpという文字列 |で複数値を区切ります。

'/item | php/'
改行文字

改行コードはデバイスによって異なります

・Windows:CR+LF

・Unix:LF

・Mac:CR

改行の正規表現は下記になります

'/[\r\n]+/'

\r はCR

\n はLF

上記のいづれか [] (各括弧)で括ります。

[](各括弧)の後ろの+は、複数可を表わす記号で、これを指定する事によりCR+LFも対象になります。

空白文字以外 空白文字以外の正規表現は下記になります。

'/[^\s]+/'

\sは、半角スペース、タブ(\f)、CR(\r)、LF(\n)、改ページ(\f)を指します。

[^\s]は、空白文字以外を表します。

[]の後ろの+は、複数可を表わす記号ででCR+LFも対象になります。

空白文字+全角スペース以外 全角スペースを含めた空白文字以外の正規表現は下記になります。

'/[^\s ]+/'

・\sの後ろに全角スペースが入っています。

クラス名、ID名で使えない文字 下記はクラス名やID名に使えない記号を指定しています。

'/[ -,.\/:-@\[-^`{-~]/'

クラス名やID名に使える文字は

①半角英数字と- (ハイフン)_(アンダースコア )

②U+0080以上の文字(すなわち2バイト文字は総て利用可)

というルールがあり、これ以外の文字は利用できません。

上記は UTF-8の文字コード表を参照して設定しています。

郵便番号のチェック 郵便番号は「3桁の数字-4桁の数字」のルールでチェックします。

'/^\d{3}-\d{4}$/'

\dは数字を表します。{n}のnは桁数を表します。

^は先頭を意味します。$は末尾を表します。

 

郵便番号を文字列の中から抽出する時は下記になります。

'/\d{3}-\d{4}/'
Gmailアドレスのチェック Gmailアドレスは下記でチェックします。

'/^[a-z\d][a-z\d.]{4,28}[a-z\d]@gmail.com$/'

Gmailで使える文字は「英数字」と「.」です。

先頭(^)文字は英数字([a-z\d])

末尾($)文字列は(英数字@gmail.com)

指定できる文字数は6~30文字です。

よって残りのの文字は「英数字」と「.」で{4,28}文字の範囲です。

 

Gmailアドレスを文字列の中から抽出する時は下記になります。

'/[a-z\d][a-z\d.]{4,28}[a-z\d]@gmail.com/'
Emailのチェック 下記は一般的に紹介されているEmailチェックです。

'/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/'

利用できる文字や制限が緩くて、このルールのメールプロバイダは見たことがありませんが、email一般は、これでチェックするしかないと思います。

 

Emailアドレスを文字列の中から抽出する時は下記になります。

'/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/'
電話番号をチェック 電話番号のチェックは下記を使います。

'/^0\d{1,2}-\d{3,4}-\d{4}$/'

電話番号ルールは下記になります

0(1桁~2桁の数字)-(3桁~4桁の数字)-(3桁~4桁の数字)

尚、0120及び0800の電話番号は上記ではチェックできません。

電話番号を文字列の中から抽出する時は下記になります。

'/0\d{1,2}-\d{3,4}-\d{4}/'

上記以外の正規表現を利用したい場合は、正規表現を解説したサイトを見て下さい。

関数 何ができるか(抜粋)
preg_match()

プレッグ・マッチ

正規表現にマッチするかをチェックする。

[事例]

■電話番号を取り出す

■電話番号の正当性をチェックする

■郵便番号をチェックする

■メールアドレスをチェックする

■現在のページを判断する

■入力フィールドにデータがあるかをチェックする

文字列でマッチングを調べるのは下記関数を使います。

strpos()

preg_match_all()

プレッグ・マッチ・オール

正規表現にマッチする物を総て取り出す。

[事例]

■配列にある電話番号を総て取りだす

preg_replace()

プレッグ・リプレース

正規表現で探して置き換える

[事例]

■文字列で検索して置き換える

■入力データから空白を削除する

■改行コードを「,」に置き換える

■商品コード等をクラス名で使える文字列に変換する

文字列でリプレースする場合は下記関数を使います。

str_replace()

preg_split()

プレッグ・スプリット

正規表現で分割して配列にする

[事例]

■「,」で区切られた文字列を配列に変換

■色々な空白で区切られて文字列を配列に変換

■姓名を分割し、姓と名で取り出す

文字列で分割して配列にする場合は下記関数を使います。

explode()

 

関数一覧
  • 1.PHPとWordPressプログラム
  • 2.PHPの出力コマンド
  • 3.PHPの変数規則と文字連結
  • 4.PHPのif文
  • 5.PHPの配列とループ処理
  • 6.PHPのオブジェクトとループ処理
  • 7.PHPの文字列操作関数
  • 8.PHPファイルや関数の読み込み
  • 9.PHPのフォーム操作
  • array_keys()
  • array_reverse()
  • checkdate()
  • count()
  • date()
  • echo
  • explode()
  • implode()
  • in_array()
  • intval()
  • isset()
  • preg_match_all()
  • preg_match()
  • preg_replace()
  • preg_split()
  • print_r()
  • session_id()
  • session_start()
  • sprintf()
  • str_replace()
  • strpos()
  • trim()
  • var_dump()