加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 在html结束标记后剪切文本

发布时间:2020-12-13 18:00:59 所属栏目:PHP教程 来源:网络整理
导读:我的网站上有一个评论系统,一些用户写了很长的评论,超过500个字符,我需要在200之后剪切它并添加选项“看到更多”.问题是用户可以使用 a test / a在某些情况下,200个字符的限制会削减中间的标记,例如 a t或 a或 a测试 /如果上述任何情况发生,则限制应延长至结
我的网站上有一个评论系统,一些用户写了很长的评论,超过500个字符,我需要在200之后剪切它并添加选项“看到更多”.问题是用户可以使用< a> test< / a>在某些情况下,200个字符的限制会削减中间的标记,例如< a> t或< a或< a>测试< /如果上述任何情况发生,则限制应延长至结束html标签的所以ex< a> test< / a>

我有这个代码:

function truncate($string,$length=200,$append="&hellip;") {
  $string = trim($string);

  if(strlen($string) > $length) {
    $string = wordwrap($string,$length);
    $string = explode("n",$string,2);
    $string = $string[0] . $append;
  }

  return $string;
}

知道如何制作这个吗?

谢谢

好吧,我想我做到了.如果有人有任何建议,请随时修改此答案或评论.
function cut_text($string,$length = 350,$append = "&hellip;")
{

    $string = trim($string);
    $string_length = strlen($string);
    $original_string = $string;
    if ($string_length > $length) {
        $remaining_chars = $string_length - $length;
        if (strpos($string,'<') !== false && strpos($string,'>') !== false) {
            $string = wordwrap($string,$length);
            $string = explode("n",2);
            $string = $string[0] . $append;
            $fillimi = substr_count($string,'<');
            $fundi = substr_count($string,'>');
            if ($fillimi == $fundi) {
                $string = $string;
            } else {
                $i = 1;
                while ($i <= $remaining_chars) {
                    $string = wordwrap($original_string,$length + $i);
                    $string = explode("n",2);
                    $new_remaining_chars = $string_length - ($length + $i);
                    if ($new_remaining_chars > 0) {
                        $string = $string[0] . $append;
                    } else {
                        $string = $string[0];
                    }
                    $fillimi = substr_count($string,'<');
                    $fundi = substr_count($string,'>');
                    if ($fillimi == $fundi) {
                        $string = $string;
                        break;
                    }
                    $i++;
                }
            }
        } else {
            $string = trim($string);

            $string = wordwrap($string,2);
            $string = $string[0] . $append;

        }
    }
    return $string;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读