2024年06月14日
7.PHPの文字列操作関数
文字列を操作するPHP関数には下記の2つ種類があります。
文字列で操作するPHP関数
文字列で操作する関数には下記の様な物があります。
関数 | 何ができるか(抜粋) |
strpos()
ストリング・ポジション |
指定した文字列があるかをチェックします。
[事例] ■指定した文字列があるかを判断する ■現在の表示ページを判断する 正規表現の文字列判断は下記を利用します |
str_replace()
ストリング・リプレース |
指定した文字列を他の文字列に置き換えます。
[事例] ■文字列を指定文字で置換する ■文字列を配列データで置換する ■配列データを配列データで置換する ■改行コードを「,」に置き換える例 正規表現でリプレースする場合は下記関数を使います |
trim()
トリム |
文字列の前後の不要な文字を削除します。
[事例] ■空白文字を削除する ■文字列の前後にある[/]を削除する ■文字列の前後にある複数の文字列を削除する |
explode()
エクスプロード |
文字列を区切り文字で分割して配列にします。
[事例] ■「,」で区切られた文字列を配列に変換 ■空白で区切られて文字列を配列に変換 正規表現で配列にする場合は下記関数を使います |
implode()
インプロード |
配列を指定した区切り文字で区切った文字列にします。
[事例] ■配列を「,」で区切られた文字列に変換する |
in_array()
インアレー |
配列の中に指定した文字があるかをチェックします。
[事例] ■配列の中にある数値をチェックする。 |
intval()
イントバリュ |
文字を整数に変換します。
[事例] ■文字列を整数に変換する |
isset()
イズセット |
変数に値がセットされているかをチェックします。
[事例] ■変数に値がセットされているかを判定する ■複数の変数の値を判定する ■チェックボックスに値が設定されているかを判定する |
sprintf()
ストリング・プリント・フォーマット |
文字列の中に指定フォーマットの文字や整数を挿入します
[事例] ■文字列の中にテキストや数字を挿入する ■数字の前に0を付与する |
正規表現で操作するPHP関数
1.正規表現とは
正規表現とは、指定したい文字列をパターンで表記する方法です。
2.PHPの正規表現
PHPの正規表現は正規表現をデリミタで括ります
例) '/正規表現/'
上記は / (スラッシュ)をデリミタとした例です。
デリミタは、英数字、バックスラッシュ、空白文字以外の任意の文字をデリミタとして使うことができます。
一般的には / (スラッシュ)以外に # (ハッシュ記号) や ~ (チルダ) が良く利用されます。
最低限、覚えたい正規表現
対象文字列 | 正規表現及び解説 | ||
itemという文字列 |
/を文字として指定したい場合は、他のデリミタを利用します。
|
||
item又はphpという文字列 | |で複数値を区切ります。
|
||
改行文字
改行コードはデバイスによって異なります ・Windows:CR+LF ・Unix:LF ・Mac:CR |
改行の正規表現は下記になります
・\r はCR ・\n はLF 上記のいづれか [] (各括弧)で括ります。 [](各括弧)の後ろの+は、複数可を表わす記号で、これを指定する事によりCR+LFも対象になります。 |
||
空白文字以外 | 空白文字以外の正規表現は下記になります。
・\sは、半角スペース、タブ(\f)、CR(\r)、LF(\n)、改ページ(\f)を指します。 ・[^\s]は、空白文字以外を表します。 ・[]の後ろの+は、複数可を表わす記号ででCR+LFも対象になります。 |
||
空白文字+全角スペース以外 | 全角スペースを含めた空白文字以外の正規表現は下記になります。
・\sの後ろに全角スペースが入っています。 |
||
クラス名、ID名で使えない文字 | 下記はクラス名やID名に使えない記号を指定しています。
クラス名やID名に使える文字は ①半角英数字と- (ハイフン)と_(アンダースコア ) ②U+0080以上の文字(すなわち2バイト文字は総て利用可) というルールがあり、これ以外の文字は利用できません。 上記は UTF-8の文字コード表を参照して設定しています。 |
||
郵便番号のチェック | 郵便番号は「3桁の数字-4桁の数字」のルールでチェックします。
・\dは数字を表します。{n}のnは桁数を表します。 ・^は先頭を意味します。$は末尾を表します。
郵便番号を文字列の中から抽出する時は下記になります。
|
||
Gmailアドレスのチェック | Gmailアドレスは下記でチェックします。
Gmailで使える文字は「英数字」と「.」です。 先頭(^)文字は英数字([a-z\d]) 末尾($)文字列は(英数字@gmail.com) 指定できる文字数は6~30文字です。 よって残りのの文字は「英数字」と「.」で{4,28}文字の範囲です。
Gmailアドレスを文字列の中から抽出する時は下記になります。
|
||
Emailのチェック | 下記は一般的に紹介されているEmailチェックです。
利用できる文字や制限が緩くて、このルールのメールプロバイダは見たことがありませんが、email一般は、これでチェックするしかないと思います。
Emailアドレスを文字列の中から抽出する時は下記になります。
|
||
電話番号をチェック | 電話番号のチェックは下記を使います。
電話番号ルールは下記になります 0(1桁~2桁の数字)-(3桁~4桁の数字)-(3桁~4桁の数字) 尚、0120及び0800の電話番号は上記ではチェックできません。 電話番号を文字列の中から抽出する時は下記になります。
|
上記以外の正規表現を利用したい場合は、正規表現を解説したサイトを見て下さい。
関数 | 何ができるか(抜粋) |
preg_match()
プレッグ・マッチ |
正規表現にマッチするかをチェックする。
[事例] ■電話番号を取り出す ■電話番号の正当性をチェックする ■郵便番号をチェックする ■メールアドレスをチェックする ■現在のページを判断する ■入力フィールドにデータがあるかをチェックする 文字列でマッチングを調べるのは下記関数を使います。 |
preg_match_all()
プレッグ・マッチ・オール |
正規表現にマッチする物を総て取り出す。
[事例] ■配列にある電話番号を総て取りだす |
preg_replace()
プレッグ・リプレース |
正規表現で探して置き換える
[事例] ■文字列で検索して置き換える ■入力データから空白を削除する ■改行コードを「,」に置き換える ■商品コード等をクラス名で使える文字列に変換する 文字列でリプレースする場合は下記関数を使います。 |
preg_split()
プレッグ・スプリット |
正規表現で分割して配列にする
[事例] ■「,」で区切られた文字列を配列に変換 ■色々な空白で区切られて文字列を配列に変換 ■姓名を分割し、姓と名で取り出す 文字列で分割して配列にする場合は下記関数を使います。 |