Home  >  Article  >  Backend Development  >  Principle of Automatic Control Hu Shousong PHP version automatically generates article summary

Principle of Automatic Control Hu Shousong PHP version automatically generates article summary

WBOY
WBOYOriginal
2016-07-29 08:38:281038browse

Automatically generate article abstracts [JavaScript version].
When we write programs like BLOG, we often need to display the previous part of the article, but we are afraid that improper truncation will destroy the closing tag and cause damage to the entire document structure. Using my function can solve this problem without high requirements. question.
Everyone should consider whether this function is applied on the server side or on the client side. Because I consider that this function may be more machine-intensive to run,
so it can be placed on the client if security requirements are not high.
It is best to put this summary in a separate field in the data table, so that the corresponding database query is also optimized. Sacrificing a little space in exchange for a lot of time is still a good deal.
Let’s talk about security issues again, mainly content security. If the client intends to change the normal summary information, generally the owner of the BLOG has this power, so it is his own business to destroy the consistency between the summary and the original text. Security other than content can be solved on the server side. Therefore, it is recommended to use this function on the client side.
Core code:
I recently applied it and found that the above function does not support multi-byte character sets well, so I rewrote it.
If you encounter problems, you might as well try the following function.
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;
};欢迎大家找错误。谢谢。

以上就介绍了自动控制原理 胡寿松 PHP版自动生成文章摘要,包括了自动控制原理 胡寿松方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn