我有一个这样的字符串:
$string = '[Canada] [United States]';
我需要检测类似这样的东西
if($string contains Canada) {
// Do stuff for Canada
}
答案 0 :(得分:4)
您可以在[
和]
之间提取所有文字,然后查看是否在结果数组中找到了该文字。
preg_match_all('/\[(.*?)\]/', $string, $matches);
if (in_array('Canada', $matches[1])) {
echo 'Hello, Canada!';
}
如果您刚刚使用了子字符串搜索功能,那么您将面临搜索的字符串是括号中较大块的子字符串的风险。
答案 1 :(得分:2)
如果您正在进行简单的文本匹配,并且不希望使用正则表达式引擎的开销,那么strpos
函数可能就是您要查找的内容。
有关详细信息,请参阅strpos的PHP手册页。
if(strpos($string,"Canada")!==FALSE){
// Do stuff for Canada
}
strpos()
函数的使用优先于strstr()
,因为manual表示程序员只关心找到匹配的实例,而不是匹配所在的位置, strpos()
更快,内存更少。
答案 2 :(得分:0)
使用strstr()
。