doufan9805 2014-08-27 19:15
浏览 74
已采纳

如果字符串包含一个集合中的任何字符串,则使用strpos返回true

The only function I can use is strpos, say I have set of strings: cat dog elephant

and I want to know if a keyword contains either to any of the strings above.

for at => True (contains inside cat) for og => True (contains inside dog) for asdasd => False (contains inside elephant)

I tried this:

strpos("keyword",("cat" || "dog" || "elephant"))

but no luck.

Hope somebody can help

  • 写回答

1条回答 默认 最新

  • doucheng2210 2014-08-28 11:03
    关注

    Are there any restrictions on your keyword and strings? If they will never contain a certain character, say '~', then you can simply use this:

    if (strpos(<your keyword>,implode('~',<array of strings>)) !== FALSE)
    {
      <do something>
    }
    

    This cannot be used when you have no control over the characters in your keyword and strings. In that can you can check each string in the array seperately:

    foreach (<array of strings> as $string)
    {
      if (strpos(<your keyword>,$string) !== FALSE)
      {
         <do something>
      }
    }
    

    An array is clearly the way to go to store your strings.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?