zoukankan      html  css  js  c++  java
  • php截取字符串中的关键字,并高亮显示

    <?php
    $str = "hahaceshi测试一下关键字高亮显示,以及长字符串截取的问题!";
    $key = "关键字";
    
    $r = sub_key_h($str,$key);
    echo $r;
    
    function sub_key_h($str,$key,$len=10,$enc='utf-8'){
        $strlen = mb_strlen($str,$enc);
        $keylen = mb_strlen($key,$enc);
        $keypos = mb_strpos($str,$key,0,$enc);
        $leftpos = $keypos - 1;
        $rightpos = $keypos + $keylen;
    
        if($keylen > $len){
            return "<font style='font-color:red;'>".mb_substr($key,0,$len,$enc)."</font>...";
        }
        $result = "<font style='font-color:red;'>".$key."</font>";
        for($i = 0;$i<$len - $keylen;$i++){
            if($leftpos >= 0){
                $result = mb_substr($str,$leftpos--,1,$enc).$result;
            }else{
                $result .= mb_substr($str,$rightpos++,1,$enc);
            }
        }
        if($leftpos >= 0){
            $result = "...".$result;
        }
        if($rightpos < $strlen){
            $result .= "...";
        }
        return $result;
    }
    ?>

    结果为

    ...shi测试一下<font style='font-color:red;'>关键字</font>...
  • 相关阅读:
    两条斜线
    Cantor表
    城市网络
    一起来数二叉树吧
    牛客网音乐研究(枚举)
    删括号
    合并回文子串
    寻找道路
    EXTJS 4.0.2 XML数据
    extjs4.0.2a gridpanel看不到横向滚动条的一种原因
  • 原文地址:https://www.cnblogs.com/sooj/p/3245383.html
Copyright © 2011-2022 走看看