PHP常见字符串处理方法

1、实现搜索引擎中把搜索结果命中的关键字标记红色

<?php

/**
 * 把字符串拆分成数组
 * @param $search 搜索关键字
 * @return array
 */
function splitString(string $search):array
{
    // 正则匹配,汉字按单字拆分,英文按单词拆分并且位数不少于2位,数字按连续性拆分并且位数不少于2位
    preg_match_all('/([a-zA-Z]){2,}/', $search, $matchesWord);
    preg_match_all('/([\d]){2,}/', $search, $matchesNumber);
    preg_match_all("/[\x{4e00}-\x{9fa5}]/u", $search, $matchesCN);

    $originalArr = $newArr = [];
    if (!empty($matchesWord[0])) {
        $originalArr = array_merge($originalArr, $matchesWord[0]);
    }
    if (!empty($matchesNumber[0])) {
        $originalArr = array_merge($originalArr, $matchesNumber[0]);
    }
    if (!empty($matchesCN[0])) {
        $originalArr = array_merge($originalArr, $matchesCN[0]);
    }

    // 添加<font></font>标签
    foreach ($originalArr as $value) {
        $newArr[] = sprintf("<font color='red'>%s</font>", $value);
    }
    return [$originalArr, $newArr];
}

$keyWord = '客户合同账户登录不了 怎么处理';

$searchRequest = [
    "这个客户售后搜索不到",
    "这个客户是做个人至尊服务被录成个人VIP?",
    "有什么办法更有效知道合同过期的学员?",
    "管理后台怎么查询合作到期的客户?",
    "麻烦查一下CRM这个客户登录账号",
    "这个客户 之前在商城老系统办过合同",
    "麻烦移动一下到我商城的老系统,我的账号是xx",
    "客户合同账户登录不了 怎么处理",
];

$resList = splitString($keyWord);

// 正则子字符串替换,
$replaceData = str_replace($resList[0], $resList[1], $searchRequest);


echo "<pre>关键字:\n";
echo $keyWord . "\n\n";
echo "搜索结果:\n";
print_r($replaceData);

2、字符串截取

3、去除字符串中的指定字符

/**
 * 去除字符串中的指定字符
 * @param string $str   待处理字符串
 * @param string $chars 需去掉的特殊字符
 * @return string
 */
function cmf_strip_chars($str, $chars = '?<*.>\'\"')
{
    return preg_replace('/[' . $chars . ']/is', '', $str);
}
PHP常见字符串处理方法
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    blank

    暂无评论内容