大家應(yīng)該 " /> 色偷偷五月天,先锋资源中文字幕,国产福利久久久

四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

PHP版自動(dòng)生成文章摘要

自動(dòng)生成文章摘要[JavaScript 版本]。
我們?cè)趯態(tài)LOG這樣的程序時(shí)經(jīng)常需要顯示文章前一部分的,但是又怕不恰當(dāng)?shù)慕財(cái)嗥茐姆忾]標(biāo)簽以造成整
個(gè)文檔結(jié)構(gòu)破壞,使用我的函數(shù)可以在要求不高的情況下解決這個(gè)問題。

大家應(yīng)該考慮這個(gè)函數(shù)在服務(wù)端應(yīng)用還是在客戶端應(yīng)用。因?yàn)槲铱紤]這個(gè)函數(shù)可能運(yùn)行起來比較費(fèi)機(jī)器,
所以安全性要求不高的情況下可以放在客戶端上。

最好數(shù)據(jù)表中單獨(dú)一個(gè)字段放這個(gè)摘要,這樣相應(yīng)的數(shù)據(jù)庫(kù)查詢也優(yōu)化了。犧牲一點(diǎn)點(diǎn)空間換很多時(shí)間還
是劃算的。

再聊一下安全性問題,主要是內(nèi)容安全性。如果客戶端意圖更改正常的摘要信息的話,一般都是BLOG的主
人才有這個(gè)權(quán)力,那么他使得摘要和原文的一致性破壞就是他自己的事了。內(nèi)容以外的安全性都可以在服
務(wù)端解決。所以還是推薦在客戶端使用本函數(shù)。

核心代碼:
最近應(yīng)用了一下,發(fā)現(xiàn)上面的函數(shù)對(duì)多字節(jié)字符集支持得不好,因此重寫了一下。

如果遇到問題,不妨試試下面的函數(shù)。

function Generate_Brief($text){
    global $Briefing_Length;
    mb_regex_encoding("UTF-8");
    if(mb_strlen($text) <= BRIEF_LENGTH ) return $text;    
    $Foremost = mb_substr($text, 0, BRIEF_LENGTH);
    $re = "<(//?)
(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|OBJECT|A|UL|OL|LI|
BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT|SPAN)[^>]*(>?)";
    $Single = "/BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT|BR/i";    

    $Stack = array(); $posStack = array();

    mb_ereg_search_init($Foremost, $re, 'i');

    while($pos = mb_ereg_search_pos()){
        $match = mb_ereg_search_getregs();
        /*    [Child-matching Formulation]:

            $matche[1] : A "/" charactor indicating whether current "<...>" Friction is 
Closing Part
            $matche[2] : Element Name.
            $matche[3] : Right > of a "<...>" Friction    
        */
        if($match[1]==""){
            $Elem = $match[2];
            if(mb_eregi($Single, $Elem) && $match[3] !=""){
                continue;
            }
            array_push($Stack, mb_strtoupper($Elem));
            array_push($posStack, $pos[0]);            
        }else{
            $StackTop = $Stack[count($Stack)-1];
            $End = mb_strtoupper($match[2]);
            if(strcasecmp($StackTop,$End)==0){
                array_pop($Stack);
                array_pop($posStack);
                if($match[3] ==""){
                    $Foremost = $Foremost.">";
                }
            }
        }
    }

    $cutpos = array_shift($posStack) - 1;    
    $Foremost =  mb_substr($Foremost,0,$cutpos,"UTF-8");
    return $Foremost;
};歡迎大家找錯(cuò)誤。謝謝。

php技術(shù)PHP版自動(dòng)生成文章摘要,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 松永沙奈| 常虹| 侠客行演员表| 天天操免费视频| 午间电影| 菊花台在线电视剧免费观看| 鹌鹑图片| 紫依| 亚洲狠狠爱| 三级女友| 一键换装app永久免费| 坂本梨沙| 蜘蛛侠在线观看| 电视剧《后浪》| 河南地图全图可放大| 欧美一级毛片免费视频| 尘埃落定演员表| 韩国电影《我是谁》演员表介绍| 雷恪生个人资料简介| 胎儿双顶径标准对照表| 新相亲大会第一季| dearest动漫在线观看| 欧美吻戏视频| 布丽特妮·罗伯森| 云上的宝石| 混沌行走| 桐谷| 尤勇个人资料简介简历| pharrell| 抖音| cctv16体育节目表今天目表| 幼儿园课题研究| 七寸照片| 内蒙古电视台| 亚里沙| 天秤座是风象星座?| 项瑾| 电影《la follia》| kaya| 勇敢者| 749局啥时候上映|