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

查找PHP中的分隔符中是否包含字符串,php,Php,我有这样一个字符串: $string = '[Canada] [United States]'; 我需要检测像这样的东西 if($string contains Canada) { // Do stuff for Canada } 使用。使用。您可以拉出[and]之间的所有文本,然后查看是否在生成的数组中找到它 preg_match_all('/\[(.*?)\]/', $string, $matches); if (in_array('Canada', $matches[1])) {

我有这样一个字符串:

$string = '[Canada] [United States]';
我需要检测像这样的东西

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

使用。

使用。

您可以拉出[and]之间的所有文本,然后查看是否在生成的数组中找到它

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

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


如果只使用子字符串搜索功能,则可能会遇到这样的风险,即搜索的字符串是括号之间较大块的子字符串。

您可以拉出[and]之间的所有文本,然后查看是否在结果数组中找到它

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

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


如果您只是使用子字符串搜索函数,您将面临这样的风险,即您搜索的字符串是括号之间较大块的子字符串。

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

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

与strstr相比,strps函数的使用更受欢迎,因为它指出,对于程序员只关心查找匹配项而不关心匹配项所在位置的实例,strps速度更快,占用内存更少。

如果您正在进行简单的文本匹配,并且不希望使用正则表达式引擎的开销,strpos功能可能正是您所需要的。 有关更多详细信息,请参阅PHP手册页面

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

与strstr相比,strps函数的使用更受欢迎,因为它指出,对于程序员只关心查找匹配项而不关心匹配项所在位置的实例,strps速度更快,内存占用更少。

是否可以将此数据存储在数组中而不是字符串中?遍历数组要容易得多。是否可以将这些数据存储在数组中而不是字符串中?通过数组进行迭代要容易得多。我很确定我的回答是答案而不是评论。不过,作为参考,这个回复是一个评论。我很确定我的回复是一个答案,而不是评论。不过,此回复仅供参考。