首頁  >  文章  >  後端開發  >  自動控制原理 胡壽松 PHP版自動產生文章摘要

自動控制原理 胡壽松 PHP版自動產生文章摘要

WBOY
WBOY原創
2016-07-29 08:38:281063瀏覽

自動產生文章摘要[JavaScript 版本]。
我們在寫BLOG這樣的程式時經常需要顯示文章前一部分的,但是又怕不恰當的截斷破壞封閉標籤以造成整
個文檔結構破壞,使用我的函數可以在要求不高的情況下解決這個問題。
大家應該考慮這個函數在服務端應用還是在客戶端應用。因為我考慮這個函數可能運行起來比較費機器,
所以安全性要求不高的情況下可以放在客戶端上。
最好在資料表中單獨一個欄位放這個摘要,這樣對應的資料庫查詢也優化了。犧牲一點點空間換很多時間還
是划算的。
再聊一下安全性問題,主要是內容安全性。如果客戶端意圖更改正常的摘要資訊的話,一般都是BLOG的主
人才有這個權力,那麼他使得摘要和原文的一致性破壞就是他自己的事了。內容以外的安全性都可以在服
務端解決。所以還是推薦在客戶端使用本函數。
核心程式碼:
最近應用了一下,發現上面的函數對多位元組字元集支援得不好,因此重寫了一下。
如果遇到問題,不妨試試下面的函數。
函數Generate_Brief($text){
    全域$Briefing_Length;
    mb_regex_encoding("UTF-8") 🠡>   
$Foremost = mb_substr($text, 0, BRIEF_LENGTH);
    $re = "(P|DIV|H1|H2|H3|H4|H5|H6|ADDRLE|PREIV|H1|H2|H3|H4|H5|H6|ADDRLE |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";         mb_ereg_search_init($Foremost, $re,'i');
    while($pos = mb_ ();
        /*    [子配對公式]:
            $matche[1] : 一個「/」字符,並指示目前是否為「<...>」  。
            $matche[3] : 右 >; 「<...>」的 摩擦力    
  ){
            $Elem = $ match[2];
            if(mb_eregi($Single, $Elem) && $match[3] !=""){             array_push($Stack, mb_strtoupper($ Elem));
            array_push($posStack, $pos[0]);                $StackTop = $Stack[count($Stack)-1];
            $End = mb_strtoupper ($match[2]);
            if(strcasecmp($StackTop,$End)==0){
                array_pop($posStack);
                if($ match[3] ==""){
                    $Foremost = $Foremost. );           }
        }
    }
    $cutpos    }
   - 1;    
    $Foremost =  mb_substr($Foremost,0,$cutpos,"UTF-8");
    返回$Foremost>;
;
    返回$Foremost>;
;謝謝。
以上就介紹了自動控制原理胡壽松PHP版自動生成文章摘要,包括自動控制原理胡壽松方面的內容,希望對PHP教程有興趣的朋友有所幫助。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn