字符串替换问题

字符串替换问题

字符串替换问题

有没有佬 晓得 这个咋做

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

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

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

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

chowjiawei
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 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;
}
2年前 评论
chowjiawei (楼主) 2年前
讨论数量: 11

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

2年前 评论
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]> 真牛

仅供批判改良。

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

可以放前端或者后端来做

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

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

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

2年前 评论

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

2年前 评论
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;
}
2年前 评论
chowjiawei (楼主) 2年前

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