1. 程式人生 > >自定義函式實現百度搜索關鍵字在網頁中匹配字元高亮顯示效果

自定義函式實現百度搜索關鍵字在網頁中匹配字元高亮顯示效果

    自定義函式實現類似百度搜索關鍵字在網頁中匹配字元高亮顯示效果。完全用php來實現簡單但很有趣的效果。函式如下:

<?php
    /**
    * @param $wd 搜尋的詞語
    * @param $str 要搜尋的文章
    * @return $string 返回高亮後的文章
    */     
    function lightSearch($wd,$str){
    $strnum = mb_strlen($wd,'UTF8');
    while($strnum){
        $array[]=mb_substr($wd,0,1,'utf8');
        $wd= mb_substr($wd,1,$strnum,'utf8');
        $strnum=mb_strlen($wd,'UTF8');
    }
    foreach($array as $v){
        $str = str_replace($v,'<font style = "color:#DB6D4B">'.$v.'</font>',$str);
    }
        return $str;
    }
?>


    下面舉個例項,我們來高亮一篇文章中的‘宇宙’詞。講所有的宇宙字高亮為淡紅色

<?php
    header('Content-type:text/html;charset=utf-8');
       $wd = '宇宙';
       $str = "據美國媒體報道,科學家上週宣佈,位於南極的一架望遠鏡在太空中偵測到了宇宙誕生最初時發出的漣漪。這次發現可能印證了天文學家最珍視的“宇宙大爆炸”(Big Bang)模型,但其影響遠不僅限於此。報道指出,名為Bicep2的望遠鏡觀測到的漣漪,是宇宙大爆炸遺留下來的微波輻射偏振所產生的微弱螺旋圖案。這些漣漪彷彿古蹟,產生這些輻射的能量比大型強子對撞機的能量高出一萬億倍。這種引力波是一種被稱為“暴脹”(inflation)的理論中,研究人員長期尋求的標記,它就是讓“大爆炸”理論中的“爆炸”發生的力量。在宇宙的時鐘啟動之後的一萬億億億分之一秒後,這種反引力的爆發就開始了。這是過去兩年裡第二次出現實驗證實大爆炸模型的情況,而這一想法僅僅幾十年前還被認為激進。第一次是2012年7月宣佈的發現希格斯玻色子(Higgs boson)的訊息,這種粒子與一種向其他粒子賦予質量的能量場相關。";
       function lightSearch($wd,$str){
           $strnum = mb_strlen($wd,'UTF8');
        while($strnum){
               $array[]=mb_substr($wd,0,1,'utf8');
               $wd= mb_substr($wd,1,$strnum,'utf8');
               $strnum=mb_strlen($wd,'UTF8');
        }
        foreach($array as $v){
            $str = str_replace($v,'<font style = "color:#DB6D4B">'.$v.'</font>',$str);
        }
        return $str;
       }
       echo lightSearch($wd,$str);
?>

    執行結果如下: