Typecho截取文章标题首字符

/var/Widget/Base/Contents.php

    /**
     * 输出标题
     *
     * @param integer $length 标题截取长度
     * @param string $trim 截取后缀
     */
    public function title(int $length = 0, string $trim = '...')
    {
        $title = Contents::pluginHandle()->trigger($plugged)->title($this->title, $this);
        if (!$plugged) {
            echo $length > 0 ? Common::subStr($this->title, 0, $length, $trim) : $this->title;
        } else {
            echo $title;
        }
    }

/var/Typecho/Common.php

         /**
         * 宽字符串截字函数
         *
         * @param string $str 需要截取的字符串
         * @param integer $start 开始截取的位置
         * @param integer $length 需要截取的长度
         * @param string $trim 截取后的截断标示符
         *
         * @return string
         */
        public static function subStr(string $str, int $start, int $length, string $trim = "..."): string
        {
            if (!strlen($str)) {
                return '';
            }

            $iLength = self::strLen($str) - $start;
            $tLength = $length < $iLength ? ($length - self::strLen($trim)) : $length;
            $str = mb_substr($str, $start, $tLength, 'UTF-8');

            return $length < $iLength ? ($str . $trim) : $str;
        }

        /**
         * 获取宽字符串长度函数
         *
         * @param string $str 需要获取长度的字符串
         * @return integer
         */
        public static function strLen(string $str): int
        {
            return mb_strlen($str, 'UTF-8');
        }

结论

<?php $this->title('1',''); ?>
狗云AFF
已有 4 条评论
标签:

  1. 这篇文章写得深入浅出,让我这个小白也看懂了!

  2. 高级,收藏

  3. 更新了好好好好好好好

      1. 快把你的音游端上来让大伙品鉴一番罢(恼)