查找PHP中的分隔符是否包含字符串

时间:2012-04-07 02:57:42

标签: php

我有一个这样的字符串:

$string = '[Canada] [United States]';

我需要检测类似这样的东西

if($string contains Canada) {
 // Do stuff for Canada
}

3 个答案:

答案 0 :(得分:4)

您可以在[]之间提取所有文字,然后查看是否在结果数组中找到了该文字。

preg_match_all('/\[(.*?)\]/', $string, $matches);

if (in_array('Canada', $matches[1])) {
    echo 'Hello, Canada!';
}

CodePad

如果您刚刚使用了子字符串搜索功能,那么您将面临搜索的字符串是括号中较大块的子字符串的风险。

答案 1 :(得分:2)

如果您正在进行简单的文本匹配,并且不希望使用正则表达式引擎的开销,那么strpos函数可能就是您要查找的内容。 有关详细信息,请参阅strpos的PHP手册页。

if(strpos($string,"Canada")!==FALSE){
    // Do stuff for Canada
}

strpos()函数的使用优先于strstr(),因为manual表示程序员只关心找到匹配的实例,而不是匹配所在的位置, strpos()更快,内存更少。

答案 2 :(得分:0)

使用strstr()