2012年2月16日

[PHP-users 35668] Re:正規表現が有効であるかの判定


菊澤と申します。

preg_matchに間違った正規表現パターンを入れるとW_WARNINGが発生します。
そのエラーをハンドリングしてやればいいと思います。

こんな感じでどうでしょう。

function error_handler($errno, $errstr, $errfile, $errline)
{
global $preg_pattern_error;
$preg_pattern_error = true;
}

$pattern = webからの入力文字列;
$preg_pattern_error = false;
set_error_handler("error_handler", E_WARNING);
@preg_match('/' . $pattern . '/', "");
restore_error_handler();

if ($preg_pattern_error) {
// 間違った正規表現パターンです。
} else {
// 正しい正規表現パターンです。
}

On Thu, 16 Feb 2012 12:01:08 +0900
kobayashi <kobayan.ml@xxxxx> wrote:

> 小林と申します。
>
> preg_match による正規表現判定を行おうと思っていますが、
> パターン文字列として、WEBフォーム等からユーザが入力した文字列を
> 用いることを考えています。
>
> ユーザ入力の文字列が正確な正規表現である保障はないため、
> 入力された文字列を preg_match に通す前に、
> まずその文字列が有効な正規表現であるかどうかの判定を
> 行いたいと思っています。
>
> そのような判定をするにはどのような方法をとれば良いでしょうか?
>
> --
> kobayashi <kobayan.ml@xxxxx>
> _______________________________________________
> PHP-users mailing list PHP-users@xxxxx
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3

--------------------------------------------
菊澤 正明 mailto:kikuzawa@xxxxx

_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2012年2月16日 12:33
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/109038
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。