首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -字符串包含

PHP -字符串包含
EN

Stack Overflow用户
提问于 2015-10-01 13:04:39
回答 2查看 191关注 0票数 0

我有一个包含徽章对象的数组女巫。我正在尝试删除与搜索条件不匹配的对象,目前的条件是,如果名称与搜索的字符串不匹配

到目前为止,我掌握的代码是

代码语言:javascript
复制
        foreach ( $badgeList as $key=>$badge ) {
            $check = strpos($badge->getName() , $_POST['name']);
            if($check === false) {
                unset($badgeList[$key]);
                print "<br/>" . $badge->getName() . " -- post: " . $_POST['name'];
            }
        }

所发生的是它从数组中删除所有对象,甚至那些与字符串匹配的对象。

这是正在印刷的东西

户外挑战-张贴:户外 户外加挑战-张贴:户外 户外挑战-张贴:户外 户外挑战-张贴:户外 夜间1 第一年-岗位:户外 晚上5-邮电:室外

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-01 13:31:31

如果需要更宽松的匹配,请使用不区分大小写的函数或regex:

代码语言:javascript
复制
stristr($badge->getName() , $_POST['name'])

代码语言:javascript
复制
if( ! preg_match("/" . $_POST['name'] . "/i",$badge->getName()) ) {

在这些建议中,stristr是不区分大小写的strstr版本,/i是regex的不区分大小写的标志。

票数 1
EN

Stack Overflow用户

发布于 2015-10-01 14:09:36

解决这一问题的一个办法如下:

代码语言:javascript
复制
$check = strpos(strtolower($badge->getName()) , strtolower($_POST['name']));

strtolower()将把大海捞针和大写字符串转换为小写字符串,现在搜索"string“也将匹配"String”。

您最初的问题是strpos()进行区分大小写的搜索('S‘与’s‘不相同)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32888325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档