Posts tagged regex
【OpenPNE カスタマイズ】バリデーションを行う ini ファイルの書式
3OpenPNE のバリデーション処理を定義する ini ファイルの書式に関するメモです。
例えば ?m=pc&a=page_hoge という URL に対するバリデーションを行うときには /openpne/webapp_ext/modules/pc/validate/page/hoge.ini というファイルを作成します。
(続きを読む…)
jQuery でクッキーを扱う方法
1jQuery でクッキーを扱うのを下記サイトを参考にやってみました。
javascriptライブラリjQueryでcookieを超簡単に扱う方法 : 4GALAXYのメモ
Klaus Hartl – Stilbüro : Cookie Plugin for jQuery
jquery.cookie.js の準備
jquery.cookie.js をダウンロードして HTML で使えるようにします。
<script type="text/javascript" src="jquery.cookie.js"></script>
PHP で「全角ひらがな」や「全角カタカナ」かチェックする
3フォームのフリガナなどで全てひらがなのみ、またはカタカナのみかをチェックする方法です。
mb_ereg で判定する場合
mb_regex_encoding("UTF-8"); if (!mb_ereg("^[ぁ-ん]+$", $string)) { echo "ひらがなのみ"; } if (!mb_ereg("^[ァ-ヶー]+$", $string)) { echo "カタカナのみ"; }
CakePHP1.2 で追加される3つのバリデーション
1次に公開される CakePHP 1.2 に3つのバリデーションが追加されるようです。
Three new validation rules – cakebaker
真偽値か
var $validate = array('is_enabled' => array('rule' => array('boolean')));
OpenPNE 2.10 のメールサーバの設定
1OpenPNE のインストール時にメールから日記の投稿などを受け付けるためにメールサーバの設定を行います。
OpenPNE のバージョン 2.10 からメールアドレスに新たに編集のアドレスが加わっていますが、ググッてみても 2.8 のころの形式の設定方法しか情報がないので書いておきます。
(続きを読む…)
Smarty で正規表現を if 文で使用する
2Smarty には正規表現を使用して文字列を置換する regex_replace があります。
これを上手に使用して if 文で正規表現を用いて条件分岐させます。
if (preg_match('/php/i', 'PHP is the web scripting language of choice.')) { echo 'A match was found.'; } else { echo 'A match was not found.'; }
PHP で上記のような処理を Smarty で書くと下記のようになります。
{assign var='string' value='PHP is the web scripting language of choice.'} {if $string|regex_replace:'/.*php.*/i':'php' eq 'php'} A match was found. {else} A match was not found. {/if}
ポイントは regex_replace を用いて、正規表現のパターンに該当する場合は元の文字列を何かしらの文字列(上の例でいうと’php’)に置換してしまい、それを eq で置換されているか判定するということです。
これを実際に使用したのは OpenPNE のテンプレートです。
OpenPNE を使用していて、特定のカテゴリのときのみ読み込む CSS を変えたいときがありました。
OpnePNE のイベント関連の URL は http://expamle.com/?m=pc&a=page_c_event_*** という感じになります。
全部で14種類ありますので、これを普通に if 文で書いていると大変なことになりますし、追加などがあったときのことを考えるとよくありません。
そこで Smarty の if 文に正規表現を使用して下記のようにすることにより1つの条件で page_c_event_*** の URL を条件分岐させました。
Smarty テンプレート
{if $smarty.get.a|regex_replace:"/page_c_event.*_/":"event" eq "event"} {** イベントです**} {else} {** イベント以外です **} {/if}