字符串替换问题

字符串替换问题

字符串替换问题

有没有佬 晓得 这个咋做

用户输入的文字 遇到我的数据库比对文本 有一个值一致的 就进行替换

比如 240001 我在$bidui中 找到了 就替换为一个固定格式 type:1[240001][240001]

基金名字2 我在$bidui中 找到了 就替换为一个固定格式 type:1[240002][基金名字2]

最后的文本 为:
type:1[240001][240001] type:1[240002][基金名字2] 真牛’;

chowjiawei
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
Mutoulee
最佳答案
function names_parse($input, $searchArray)
{
    foreach ($searchArray as $search){
        foreach ($search as $s){
            if (strpos($input, $s) !== false){
                $replace = '<type:1['.$search[0].']['.$s.']>';
                $input = str_replace($s, $replace, $input);
            }
        }
    }
    return $input;
}
1年前 评论
chowjiawei (楼主) 1年前
讨论数量: 11

你这得用分词吧,如果用户输入的就是 有空格直接explode 切下

1年前 评论
Mutoulee
$input = '240001 基金名字2 真牛';
$searchArray = [
    [
        '240001',
        '基金名字1',
        '基金简称1',
    ],
    [
        '240002',
        '基金名字2',
        '基金简称2',
    ]
];

function names_parse($input, $searchArray)
{
    $inputArray = explode(" ", $input);
    foreach ($inputArray as &$item){
        foreach ($searchArray as $search){
            $key = array_search($item, $search);
            if ($key !== false){
                $item = '<type:1['.$search[0].']['.$search[$key].']>';
                break;
            }
        }
    }
    return implode(" ", $inputArray);
}

//Run:names_parse($input, $searchArray);
//Result:<type:1[240001][240001]> <type:1[240002][基金名字2]> 真牛

仅供批判改良。

1年前 评论
chowjiawei (楼主) 1年前
chowjiawei (楼主) 1年前
Mutoulee (作者) 1年前
chowjiawei (楼主) 1年前
Mutoulee (作者) 1年前

可以放前端或者后端来做

前端来做的话,你可以试试评论框输入@,和这个效果差不多

首先固定格式,监听input的值,比如用户输入了/数字之后查询推荐基金代码,然后用户选择了某个选项之后,前端拼接成固定格式字符串

后端的话就是提交的时候做个队列任务,正则匹配6位长度数字。拿匹配的值去查数据库看看有没有对应基金代码,有的话就替换然后更新保存

1年前 评论

首先你这个用户输入的需要分词才行啊

1年前 评论
Mutoulee
function names_parse($input, $searchArray)
{
    foreach ($searchArray as $search){
        foreach ($search as $s){
            if (strpos($input, $s) !== false){
                $replace = '<type:1['.$search[0].']['.$s.']>';
                $input = str_replace($s, $replace, $input);
            }
        }
    }
    return $input;
}
1年前 评论
chowjiawei (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!