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

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

WBOY
Freigeben: 2016-06-23 13:45:41
Original
1865 Leute haben es durchsucht

各位哥哥,小女子刚学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'];
Nach dem Login kopieren

楼上的要确保楼主打开了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;}
Nach dem Login kopieren

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;    }
Nach dem Login kopieren

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

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

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

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage