Home > Backend Development > PHP Tutorial > php中如何对输出的文章限制字数,剩余的用“.”表示?

php中如何对输出的文章限制字数,剩余的用“.”表示?

WBOY
Release: 2016-06-23 13:45:41
Original
1867 people have browsed it

各位哥哥,小女子刚学php,在对文章内容进行输出时,如图:
由于文章内容太多,搞得整个表格都变形了,所以就想通过只输出一部分,其他内容用省略号表示,如图:
也在网上找了很多方法都行不通的,CSS啊,php中substr等函数那些都搞不好,希望能得到帮助!谢谢


回复讨论(解决方案)

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

楼上的要确保楼主打开了extension=php_mbstring.dll ;

/** * 字符串截取 * */function sub_str($str, $length = 0, $append = true){    $str = trim($str);    $strlength = strlen($str);    if ($length == 0 || $length >= $strlength)    {        return $str;  //截取长度等于0或大于等于本字符串的长度,返回字符串本身    }    elseif ($length < 0)  //如果截取长度为负数    {        $length = $strlength + $length;//那么截取长度就等于字符串长度减去截取长度        if ($length < 0)        {            $length = $strlength;//如果截取长度的绝对值大于字符串本身长度,则截取长度取字符串本身的长度        }    }    if (function_exists('mb_substr'))    {        $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;}
Copy after login

mb_strlen字符截取

很多开源网站都有这样函数

mb_strlen

以下摘自thinkphp框架源码;

    /**     * 字符串截取,支持中文和其他编码     * @static     * @access public     * @param string $str 需要转换的字符串     * @param string $start 开始位置     * @param string $length 截取长度     * @param string $charset 编码格式     * @param string $suffix 截断显示字符     * @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(function_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[$charset], $str, $match);            $slice = join("",array_slice($match[0], $start, $length));        }        return ($suffix && (mb_strlen($str,$charset) > $length)) ? $slice.'...' : $slice;    }
Copy after login

这个可以用css做到,卤煮可以百度 css控制字数

感谢1楼哥哥的指点,问题已经解决!

也感谢二楼的哥哥,提醒用1楼哥哥的方法时,要开启php.ini里面的“extension=php_mbstring.dll ”,

source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template