为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用PHP检查另一个字符串中是否包含单词?

如何使用PHP检查另一个字符串中是否包含单词?

PHP
红颜莎娜 2019-11-28 13:07:48
伪码text = "I go to school";word = "to"if ( word.exist(text) ) {    return true ;else {    return false ;}我正在寻找一个PHP函数,如果单词在文本中存在,该函数将返回true。
查看完整描述

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;

}


查看完整回答
反对 回复 2019-11-28
?
慕侠2389804

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”,则将匹配:


“听我说”

“到月球”

“最新”

但不是:


“一起”

“进入太空”


查看完整回答
反对 回复 2019-11-28
?
莫回无

TA贡献1865条经验 获得超7个赞

另一种方法(除了已经给出的strpos示例之外,还可以使用'strstr'函数:


if (strstr($haystack, $needle)) {

   return true;

} else {

   return false;

}


查看完整回答
反对 回复 2019-11-28
  • 3 回答
  • 0 关注
  • 581 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信