ITメモ
PHP
PHP マニュアル(PHP Official Web)
Basic Knowlege / 基礎知識
「CentOS」にPHPをインストール方法PHPファイルの作り方外部「クラスファイル」「関数ファイル」を読み込む方法変数の使い方定義済み変数の使い方関数の使い方配列の使い方クラスの使い方ヒアドキュメントの使い方PHPの演算子条件分岐
Access Info / アクセス インフォ
IPアドレスを確認する方法アクセスされたURLパスを確認する方法PCとスマートフォンの判定アクセスしたページから特定ページにリダイレクトさせる方法
ファイル・ディレクトリ
ファイルとディレクトリの操作方法(作成・確認・削除)ディレクトリ内のファイル・ディレクトリPath(URL)を配列に格納する方法
ファイルの読み込みと書き込み
「file_get_contents」関数を使ってファイルを読み込む方法「readfile」関数を使ってファイルを読み込む方法「file」関数を使ってファイルを読み込む方法「fread」関数を使ってファイルを読み込む方法「fgets」関数を使ってファイルを読み込む方法「fwrite」関数を使ってファイルに書き込みをする方法
チェック
「is_file」関数 - 指定パスがファイルかをチェックする方法「is_dir」関数 - 指定パスがディレクトリかをチェックする方法
画像ファイル
画像ファイルのIPTC情報を取得する方法 画像ファイルをZipファイル形式でダウンロードさせる画像をコピーする方法画像のキーワード情報を取得する方法画像ファイルから「EXIF」ヘッダを読み込む画像の大きさ・画像情報を取得する
情報
「PHP」の出力系関数 - プログラミングで必須のデータ内容をチェックする方法関数の返り値を複数で受け取る方法使用可能なメモリ使用量を変更する方法mb_send_mail - エンコード変換を行ってメールを送信する「Google」「Goolge Map]に渡した値が文字化けするときの解決方法PHPで日付比較をする方法
文字列
「文字列」の長さを取得する方法【 substr 】「文字列」から一部分を取り出す方法【 explode 】「文字列」を分割する方法【 preg_split 】正規表現で「文字列」を分割するランダムな数字を取得する方法
文字の検索
「strpos」関数で指定文字の最初の位置を確認する方法「preg_match」関数で指定した「正規表現」で検索する方法
文字の置換
「str_replace」関数で指定した文字列を置き換える方法「preg_replace」関数で指定した文字列を置き換える方法
文字の削除
「trim」関数 - 文字列の両端から指定文字を削除する方法「ltrim」関数 - 文字列の先頭から指定文字を削除する方法「rtrim」関数 - 文字列の末尾から指定文字を削除する方法文字列の中にある「文字」を削除する方法「改行」を削除する方法文字列の「空白(スペース)」を削除する方法
配列
配列に値を追加する方法配列の値を削除する方法配列の有無を確認する方法配列の中から重複した値を削除する配列の空の値を削除する配列の並び順を変えるis_array - 変数が配列かを確認するin_array - 配列の中に指定した値があるか確認するimplode - 値の間に文字加えて配列を文字列に変換するarray_merge - 配列と配列を結合する方法
ライブラリ
「PHP」で使えるライブラリの種類「GD」ライブラリの使い方
Server / サーバー
サーバーの最大実行可能時間を変更する





【PHP】「preg_replace」関数で指定した文字列を置き換える方法

【PHP】
「preg_replace」関数で指定した文字列を置き換える方法




「preg_replace」関数は、
「正規表現」を使って「検索」「置換」を行う関数。

「文字」だけでなく、「記号」「空白」「改行」など、 検索できるものであれば、「置換」が可能。

「置換」だけでなく、
「置換」パラメータを「空文字」にする事で、
「削除」することも可能。

「正規表現」を利用する事で、
あらゆる検索パターンを指定できる。



「preg_replace」関数の書式


「preg_replace」関数は、
「正規表現」を使って「検索」「置換」を行う関数。

「preg_replace」関数の書式は、「5つ」のパラメータを使って、
「検索」「置換」を機能させている。
主に使われるパラメータは、
・第一引数:「検索文字」を指定するパラメータ
・第二引数:「置換文字」を指定するパラメータ
・第三引数:検索対象となる文字列・配列
の3つで、「preg_replace」関数を使用する時には「必須」のパラメータ。


「preg_replace」関数の基本書式

preg_replace(
string|array $pattern,
string|array $replacement,
string|array $subject,
int $limit = -1,
int &$count = null
): string|array|null

「preg_replace」関数は、「subject」で指定した文字列などから、 「pattern」指定した文字を検索し、 合致した文字を「replacement」で指定した文字に置換える。


preg_replace( "検索する文字列", "置換える文字列", "検索対象の文字列", 置換を行う最大回数, 置換え回数を格納する変数): 返り値(文字列・配列・真為値)
preg_replace( 必須, 必須, 必須, 省略可, 省略可): 返り値(文字列・配列・真為値)


$Sample_Text = preg_replace( "検索する文字列", "置換える文字列", "既存の文字列", 3, $置き換え回数を保存する変数);
$S=$SearchText;
$R=$ReplaceText;
$O=$ObjectText;
$RC=$ReplaceCount;
$Sample_Text = preg_replace( $S, $R, $O, 3, $RC);
$Sample_Text = preg_replace( $S, $R, $O, 3, $RC);
$Sample_Text = preg_replace( $S, $R, $O, -1, $RC);
$Sample_Text = preg_replace( $S, $R, $O, 3);



「preg_replace」関数のパラメータ


「preg_replace」関数は、指示を出す「パラメータ」に幅広い値が指定できるようになっている。
「文字列」「変数」の他に、「配列」「正規表現」も指定できる。



パラメータ説明
pattern 「pattern」パラメータは、検索を行う「文字列」「パターン」を指定するパラメータ。
「変数」「配列」「正規表現」「PCRE」「修飾子」でも使用可能。
replacement 「replacement」パラメータは、
「置換」する「文字列」を指定するパラメータ。
「文字列」の他に「変数」「配列」「正規表現」でも指定可能。

「配列」で指定した場合は、置換えする度に、配列の次の要素に移行し、 置き換え回数より、配列の要素数が少ない時には、「空文字」に置換えるので、文字が削除される。

「$n」「\n」と指定すると、「pattern」で一致した文字が、参照でき、置換え文字に追加できます。
「$n」「\n」を数字「$1」にすると、配列の時などでは、検索に合致した順番の検索文字列を参照する事ができる。
数字の直後に、数字を置きたい場合は、「${1}1 」と記述する事で可能となる。
subject 「検索」「置換」の対象となる「文字列」をしているパラメータ。
「配列」でも指定可能。
「subject」が配列の場合、「検索」「置換」が「subject」で指定した各要素にして実行され、「返り値」も「配列」となる。
limit 「limit」パラメータは、「置換」を実行する「回数」を指定できるパラメータ。
「subject」に対して、「pattern」による「検索」をし、「replacement」に「置換」をする最大回数。
デフォルトは、「-1(制限無し)」が指定されていて、「検索」されたものは、全て「置換」が実行される。
count 「count」パラメータに、「変数」が指定されると、「置換」が実行された回数が格納される。
指定する「変数」は、「空」「0」の変数が良い。
戻り値 「preg_replace」関数は、「subject」引数が、「配列」の場合は「配列」、「その他」の場合は「文字列」で返される。

返り値の値は、
・パターンがマッチした場合 = 「置換」された新しい「subject」
・マッチしなかった場合 = 「subject」をそのまま返す。
・エラーが発生した場合 = 「null」を返す。
エラー / 例外 「\e」修飾子を使用すると、「E_WARNING」レベルのエラーが発生する。
指定した「正規表現」の「パターン」が「コンパイル」できない場合、「E_WARNING」が発生する。


「preg_replace」関数のサンプルコード

「文字」を置換えるサンプルコード

$string = 'Sample Text';
$pattern = 'x';
$replacement = 's';
echo preg_replace($pattern, $replacement, $string);

出力結果:Sample Test



「空白(スペース)」を削除するサンプルコード

$変数名 = preg_replace(” ”, "", ”既存の文字列”);



「改行」を置換えるサンプルコード

$SampleText = preg_replace("\r\n", '', $SampleText);
$SampleText = preg_replace(array("\r\n", "\r", "\n"), '', $SampleText);
$SampleText = preg_replace(array("\r", "\n"), '', $SampleText);



Back