栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在保留格式且不破坏HTML的情况下使用PHP substr()和strip_tags()

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在保留格式且不破坏HTML的情况下使用PHP substr()和strip_tags()

并不令人惊讶,但可以。

function html_cut($text, $max_length){    $tags   = array();    $result = "";    $is_open   = false;    $grab_open = false;    $is_close  = false;    $in_double_quotes = false;    $in_single_quotes = false;    $tag = "";    $i = 0;    $stripped = 0;    $stripped_text = strip_tags($text);    while ($i < strlen($text) && $stripped < strlen($stripped_text) && $stripped < $max_length)    {        $symbol  = $text{$i};        $result .= $symbol;        switch ($symbol)        {case '<':     $is_open   = true;     $grab_open = true;     break;case '"':    if ($in_double_quotes)        $in_double_quotes = false;    else        $in_double_quotes = true; break; case "'":   if ($in_single_quotes)       $in_single_quotes = false;   else       $in_single_quotes = true; break; case '/':     if ($is_open && !$in_double_quotes && !$in_single_quotes)     {         $is_close  = true;         $is_open   = false;         $grab_open = false;     }     break; case ' ':     if ($is_open)         $grab_open = false;     else         $stripped++;     break; case '>':     if ($is_open)     {         $is_open   = false;         $grab_open = false;         array_push($tags, $tag);         $tag = "";     }     else if ($is_close)     {         $is_close = false;         array_pop($tags);         $tag = "";     }     break; default:     if ($grab_open || $is_close)         $tag .= $symbol;     if (!$is_open && !$is_close)         $stripped++;        }        $i++;    }    while ($tags)        $result .= "</".array_pop($tags).">";    return $result;}

用法示例:

$content = html_cut($content, 100);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/635214.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号