加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何使用一个或多个搜索词搜索字符串并在每次匹配后添加

发布时间:2020-12-13 21:33:36 所属栏目:PHP教程 来源:网络整理
导读:给定一个由一个空格分隔的一个或多个搜索字符串的字符串,我想不区分大小写地搜索文本中的匹配项.找到匹配项后,我想在匹配的子字符串后面追加 - . 这就是我尝试过的: 码 public function my_replace(string $fullText,string $searchText){ $searches = expl
给定一个由一个空格分隔的一个或多个搜索字符串的字符串,我想不区分大小写地搜索文本中的匹配项.找到匹配项后,我想在匹配的子字符串后面追加< - . 这就是我尝试过的: 码

public function my_replace(string $fullText,string $searchText){

    $searches = explode(' ',$searchText);
    $replace = array();
    foreach ($searches as $i => $search){
        $replace[] = $search . '<-';
    }

    return str_ireplace($searches,$replace,$fullText);
}

echo my_replace('A week ago,Elvis left the Building','elvis left');

产量

A week ago,elvis<- left<- the Building

期望的输出

A week ago,Elvis<- left<- the Building

所以我想要替换Elvis或elvis,因此替换str_ireplace,但是在输出中我想以与之前相同的方式显示它.

tldr;

如果要替换的字符串实际上不是同一个案例,如何用相同的大小写字母替换字符串?这甚至有意义吗?

解决方法

我对你的代码本身进行了一些修改,

这个preg_replace将帮助您解决问题,

片段

function my_replace(string $fullText,string $searchText)
{
    $searches = explode(' ',$searchText);
    $replace  = array();
    foreach ($searches as $i => $search) {
        $fullText = preg_replace("/$search/i","$0<-",$fullText);
    }
    return $fullText;
}
echo my_replace('A week ago,'elvis left');

这是工作demo.

节目输出

A week ago,Elvis<- left<- the Building

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读