In php, how does one limit the number of words in the output article and use "." to represent the remaining words? -Php Tutorial

Source: Internet
Author: User
In php, how does one limit the number of words in the output article and use "." to represent the remaining words? Ladies and gentlemen, when I was learning php,
Because the content of the article is too large, the entire table is distorted, so I want to output only a part of the content, and the other content is represented by a ellipsis,
I also found a lot of methods on the Internet that won't work. CSS, substr and other functions in php do not work well. I hope I can get help! Thank you.


Reply to discussion (solution)

echo mb_strlen($news['n_content'], 'utf-8') > 9 ? mb_substr($news['n_content'], 0, 9, 'utf-8').'....' : $news['n_content'];

Upstairs, make sure that the landlord opens extension = php_mbstring.dll;

/*** String truncation **/function sub_str ($ str, $ length = 0, $ append = true) {$ str = trim ($ str ); $ strlength = strlen ($ str); if ($ length = 0 | $ length >=$ strlength) {return $ str; // if the truncation length is equal to 0 or greater than or equal to the length of this string, the return string itself} elseif ($ length <0) // if the truncation length is negative {$ length = $ strlength + $ length; // The truncation length is equal to the string length minus the truncation length if ($ length <0) {$ length = $ strlength; // if the absolute value of the truncated length is greater than the length of the string itself, the length of the truncated length is obtained.} if (function_exists ('MB _ su Bstr ') {$ newstr = mb_substr ($ str, 0, $ length, EC_CHARSET);} elseif (function_exists ('iconv _ substr ')) {$ newstr = iconv_substr ($ str, 0, $ length, EC_CHARSET);} else {// $ newstr = trim_right (substr ($ str, 0, $ length )); $ newstr = substr ($ str, 0, $ length);} if ($ append & $ str! = $ Newstr) {$ newstr. = '...';} return $ newstr ;}

Mb_strlen

Many open-source websites have such functions.

Mb_strlen

The following is an example of the thinkphp framework source code;

/*** String truncation, supports Chinese and other encodings * @ static * @ access public * @ param string $ str string to be converted * @ param string $ start position * @ param string $ length truncation length *@ param string $ charset encoding format * @ param string $ suffix truncated display character * @ return string */static public function msubstr ($ str, $ start = 0, $ length, $ charset = "UTF-8", $ suffix = true) {if (function_exists ("mb_substr") $ slice = mb_substr ($ str, $ start, $ length, $ charset); elseif (f Unction_exists ('iconv _ substr') {$ slice = iconv_substr ($ str, $ start, $ length, $ charset );} else {$ re ['utf-8'] = "/[\ x01-\ x7f] | [\ xc2-\ xdf] [\ x80-\ xbf] | [\ xe0 -\ xef] [\ x80-\ xbf] {2} | [\ xf0-\ xff] [\ x80-\ xbf] {3 }/"; $ re ['gb2312'] = "/[\ x01-\ x7f] | [\ xb0-\ xf7] [\ xa0-\ xfe]/"; $ re ['gbk'] = "/[\ x01-\ x7f] | [\ x81-\ xfe] [\ x40-\ xfe]/"; $ re ['big5'] = "/[\ x01-\ x7f] | [\ x81-\ xfe] ([\ x40-\ x7e] | \ xa1-\ xfe]) /"; preg_match_all ($ re [$ cha Rset], $ str, $ match); $ slice = join ("", array_slice ($ match [0], $ start, $ length ));} return ($ suffix & (mb_strlen ($ str, $ charset)> $ length ))? $ Slice. '...': $ slice ;}

This can be done with css, and Baidu css can be used to control the number of words

Thank you for your advice on the first floor. The problem has been solved!

I would also like to thank my brother on the second floor for reminding me to enable "extension = php_mbstring.dll" in php. ini when I use my brother on the first floor ",

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.