エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


PHPで正規表現の検証には preg_match_allが便利

      2014/06/26

preg_match_allで正規表現のチェック

 
PHPで正規表現が正しいか、間違っているかの検証には preg_match_allが便利
 
Swiffyで Base64でエンコードされた画像を置換する際に、その画像の部分を正規表現で表現する必要があったわけですが、正規表現には不慣れなこともあり、正規表現の記述があっているのか、間違っているのかの確認が非常に悩ましいところでした。
 
 
ですが、あれこれと試していたところ「preg_match_all」という便利な関数があることを知りました。
 
「preg_match_all」は「繰り返し正規表現検索を行う」関数です。
 
 preg_match_all ( $pattern, $subject, $matches );
 
$subject(文字列)の中にある $pattern(検索する文字列)を検索し、$matchesの中にその結果を配列として編集してくれます。
 
これを、下記のように配列を見やすく表示してくれる「print_r」(「var_dump」でもOK)と組み合わせて使う事で、記述している正規表現にヒットしているものが何かがすぐに分かるのです。
 
 preg_match_all ( $pattern, $subject, $matches );
 print_r ( $matches );
 
正規表現をあれこれと書き直ししながら、何がヒットしているのか、どこの記述が違うのかを簡単に見る事が出来ますので正規表現を書くのに非常に便利でした。
 
正規表現は、とっつきにくい印象がありますが、具体的に見ながら記述することが出来れば少しはとっつきにくさも解消されるんじゃないでしょうかね。

 - PHP・Smarty・ECCUBE

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

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

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

QRコード(二次元バーコード)作成サービスを公開
QRコード(二次元バーコード)作成サービスを公開

QRコード(二次元バーコード)を生成するサービス。QRコードにする文字列を入力するだけで QRコードが簡単に作れる。オプションとして、画像サイズ、余白サイズ、エラー訂正レベルがある。

ob_start、ob_get_contents関数でPHPの標準出力をバッファリング・変数に代入

標準出力をバッファリングし変数に代入することができるob_start()関数の解説。include()の処理をバッファリングすることで自由な場所に処理を記述することが可能。

ECCUBEの商品一覧ページのSEO対策!rel=”next” rel=”prev”を設定

Googleは関連あるページはその旨明示するよう求めています。ECCUBEの商品一覧ページでその求めに応じるための「rel=”next”」「rel=”prev”」について解説します。

ECCUBEを開発環境から本番ドメインに変更でエラーが・パス変更について

レンタルサーバでサーバ会社から割り当てられたURLで開発し、本番公開時にドメインを当てたらエラーが!そんな場合の対処方法の解説。対処方法は簡単ですが管理画面からは対応不可。

PHPのcURLでAPIやWebサイトへのアクセス方法。file_get_contentsとの比較
PHPのcURLでAPIやWebサイトへのアクセス方法。file_get_contentsとの比較

PHPからWebサイトにアクセスしてHTMLを取得、APIにアクセスして情報を取得する場合は、cURLがオススメ。file_get_contentsでも可能だがエラー制御に難がありトラブルのもとになる。

リダイレクトループが原因で「ERR_TOO_MANY_REDIRECTS」「このページを表示できません」が出たときの対策12事例+α

リダイレクトループ、自動転送設定ループの原因の解説とその対応方法を含め事例 12例を挙げて説明。

カオナビAPI Ver.2.0のtokenを取得する PHP+cURLのサンプルプログラム
カオナビAPI Ver.2.0のtokenを取得する PHP+cURLのサンプルプログラム

PHPのcURLを使用してカオナビAPIのアクセスに必要なtoken、シートの情報を取得するサンプルプログラムを作成。cURLの処理は関数化しているため他のAPIでも流用できる。

ECCUBEの注文完了画面注文番号と商品情報を編集するCRITEO(クリテオ)タグを編集

ECCUBEの注文完了画面にクリテオのタグを編集する方法を紹介。標準機能では完了画面に注文IDや購入商品の情報を渡さないため改修が必要です。

PHPで1ヵ月前、先月、今月1日、来月末の日付などの算出はDateTimeImmutableを使う
PHPで1ヵ月前、先月、今月1日、来月末の日付などの算出はDateTimeImmutableを使う

PHPには日時をオブジェクトとして生成する関数「DateTimeImmutable」「DateTime」が用意されている。これを利用して1ヶ月後、月初日、月末日、5日後などを指定して日付を取得できる。

乱数発生器(パスワード生成サービス)がバージョンアップで高速化!
乱数発生器(パスワード生成サービス)がバージョンアップで高速化!

乱数やパスワードを生成する乱数発生器を高速化!重複しない10桁、20桁の文字列を10万件、20万件と生成することも可能!イベントのキャンペーンのシリアルコードなどにも利用可能!