0

strpos文字列内の多くの文字をチェックするために使用したいと考えています。次に例を示します。

:文字、、、!および&$stringを個別に確認したいと思います。それらのいずれかがいずれかの時点で見つかった場合は、falseを返します。

そうするための最も効率的な方法は何ですか?ありがとう!

4

3 に答える 3

2

使用するpreg_match

preg_match("/[:!&]/", $string) !== 1;

例:

var_dump(preg_match("/[:!&]/", "this is !a test string"));
> int(1)
var_dump(preg_match("/[:!&]/", "this is a test string"));
> int(0)

preg_match()は、パターンが指定されたサブジェクトに一致する場合は1を返し、一致しない場合は0を返し、エラーが発生した場合はFALSEを返します。

于 2012-12-31T20:17:48.723 に答える
1

それらのいずれかが見つかった場合は、falseを返します。

キャラクターの実際の位置は気にしないので、正規表現を使用できます。

preg_match("/[:!&]/", $str); // 1 if found, 0 if none found
于 2012-12-31T20:17:30.490 に答える
1

投稿が正確で、それらの文字列が見つかった場合にFALSEを返そうとしている場合、strpos()これは正しい関数ではありません。strpos()文字列のどこに特定の文字(または文字列)が最初に現れるかを見つけることです。

述べた目標が正確である場合は、おそらく次のようなものが必要です。

if( preg_match( "/[\:\!&]/", $str ) > 0 ) { return false; }
于 2012-12-31T20:20:00.573 に答える