0

我需要能够检查变量是否包含字符串的第一部分。例如,“foobaz xy”。“foobaz xy”之后的所有内容都可以忽略匹配。这也必须不区分大小写,并且 foobaz 和 xy 之间必须有空格。PHP 中是否已经有一个内置函数可以处理这个问题,或者需要一个正则表达式来处理这个问题?最后但并非最不重要的一点是,如果不止一种方法具有更快的执行时间?谢谢!

4

4 回答 4

3

它没有内置功能,但是有一个很小的解决方法可以实现相同的目的。检查以下示例:

$string = "foobaz xyewew";
if (stripos($string, "foobaz xy") === 0) {
    echo "It starts with foobaz xy";
}
于 2012-07-29T12:18:19.883 回答
0

至于不区分大小写的问题,您可以将新字符串复制到另一个字符串并将其转换为全部小写,这将使其不区分大小写。

假设字符串 A= foobaz xy 和 b=sth sth sth,那么您需要做的就是获取字符串 b 的子字符串,该子字符串始终是 foobaz xy 的大小,因此,如果 b 在字符数上小于 foobaz xy,它会自动打折。如果不是,那么您需要将子字符串与常量字符串 A 进行比较,这将解决问题。

在此处查看 php 子字符串:

请参见此处的 strcmp 以比较子字符串和您的字符串 请参见此处以将字符串转换为全部小写

于 2012-07-29T12:19:16.167 回答
0

最快的检查方法:

$variable  = "FooBaz xy test string";
$isContain = strpos(strlower($variable, "foobaz xy")) === 0;
于 2012-07-29T12:20:02.533 回答
0

第一个答案是正确的,有关http://www.php.net/manual/en/function.stripos.php的更多信息。永远记住,在简单的字符串检查中使用正则表达式是一种不好的做法。

于 2012-07-29T12:37:25.930 回答