3 回答
TA贡献1776条经验 获得超12个赞
您可以根据需要选择几种方法。对于这个简单的示例,strpos()可能是最简单,最直接的函数。如果您需要对结果进行处理,则可以选择strstr()或preg_match()。如果您需要使用复杂的图案而不是字符串作为针,您将需要preg_match()。
$needle = "to";
$haystack = "I go to school";
strpos()和stripos()方法(stripos()不区分大小写):
if (strpos($haystack, $needle) !== false) echo "Found!";
strstr()和stristr()方法(stristr不区分大小写):
if (strstr($haystack, $needle)) echo "Found!";
preg_match方法(正则表达式,更灵活,但运行更慢):
if (preg_match("/to/", $haystack)) echo "Found!";
因为您要求一个完整的功能,所以这是将它们组合在一起的方式(带有needle和haystack的默认值):
function match_my_string($needle = 'to', $haystack = 'I go to school') {
if (strpos($haystack, $needle) !== false) return true;
else return false;
}
TA贡献1719条经验 获得超6个赞
function hasWord($word, $txt) {
$patt = "/(?:^|[^a-zA-Z])" . preg_quote($word, '/') . "(?:$|[^a-zA-Z])/i";
return preg_match($patt, $txt);
}
如果$ word为“ to”,则将匹配:
“听我说”
“到月球”
“最新”
但不是:
“一起”
“进入太空”
TA贡献1865条经验 获得超7个赞
另一种方法(除了已经给出的strpos示例之外,还可以使用'strstr'函数:
if (strstr($haystack, $needle)) {
return true;
} else {
return false;
}
- 3 回答
- 0 关注
- 581 浏览
添加回答
举报