2016-10-21 23 views
1

私は同じパターンで検証したい変数の多くを持って、彼らは次のようになります。preg_matchを使って複数の変数をマッチさせるには?

$pattern = "/[$()`]/" 
$one 
$two 
$three 
etc... 

の代わりに、このようにそれを書く:

if (!preg_match($pattern, $one) && !preg_match($pattern, $two) && !preg_match($pattern, $three)) { 
// do stuff 
} 

は、より簡単な方法はありますこれらの変数を一度にすべて検証しますか?

答えて

0

それについて何を:あなたがテストのいずれかが失敗した場合、いくつかのものをしたい場合は、それは

$tests = array($one, $two, $three); 
$tests_count = count($tests); 

if (count(preg_grep('/[$()`]/', $tests, PREG_GREP_INVERT)) == $tests_count) { 
    // some stuff 
} 

にすることができます。

count(preg_grep('/[$()`]/', $tests, PREG_GREP_INVERT)) > 0) 
1
<?php 
$array= array($one, $two, $three); 

if (in_array("$()`", $array)) 
    { 
    echo "Match found"; 
    } 
else 
    { 
    echo "Match not found"; 
    } 
?> 

私はこれがあなたのために働くことを願っています

+0

*なぜ*これが機能するのか説明できますか? – Martin

+0

配列のすべての値を渡すことができます。配列の中のパターンがそうでなければ、それを満たしているかどうかをチェックすることができます。私はあなたが私が何を言おうとしていることを願っています。 –

+0

しかし、正規表現の代わりに正規表現を使用したいのですが? – hillz

関連する問題