PHP strpos检查许多

时间:2012-12-31 20:13:31

标签: php strpos

我希望使用strpos检查字符串中的多个字符,例如:

我想在$ string中分别检查字符:!&。如果在任何时候找到它们中的任何一个,则返回false。

最有效的方法是什么?谢谢!

3 个答案:

答案 0 :(得分: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。

答案 1 :(得分:1)

  

如果找到任何一个,则返回false。

由于您不关心角色的实际位置,您可以使用正则表达式:

preg_match("/[:!&]/", $str); // 1 if found, 0 if none found

答案 2 :(得分:1)

如果你的帖子是准确的,你要做的是返回FALSE如果找到这些字符串,strpos()不是正确的功能。 strpos()用于查找字符串中某些字符(或字符串)首次出现的位置。

如果你声明的目标是准确的,你可能想要更像这样的东西:

if( preg_match( "/[\:\!&]/", $str ) > 0 ) { return false; }