thinkphp5中截取字串的方法有哪些?(兩種方法實現)

來源:互聯網
上載者:User
本篇文章給大家帶來的內容是關於thinkphp5中截取字串的兩種方法介紹(代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。

在公用的common.php中

方法1

//字串截取function cut_str($sourcestr,$cutlength)  {     $returnstr='';     $i=0;     $n=0;     $str_length=strlen($sourcestr);//字串的位元組數     while (($n<$cutlength) and ($i<=$str_length))     {        $temp_str=substr($sourcestr,$i,1);        $ascnum=Ord($temp_str);//得到字串中第$i位字元的ascii碼        if ($ascnum>=224)    //如果ASCII位高與224,        {      $returnstr=$returnstr.substr($sourcestr,$i,3); //根據UTF-8編碼規範,將3個連續的字元計為單個字元                   $i=$i+3;            //實際Byte計為3           $n++;            //字串長度計1        }        elseif ($ascnum>=192) //如果ASCII位高與192,        {           $returnstr=$returnstr.substr($sourcestr,$i,2); //根據UTF-8編碼規範,將2個連續的字元計為單個字元           $i=$i+2;            //實際Byte計為2           $n++;            //字串長度計1        }        elseif ($ascnum>=65 && $ascnum<=90) //如果是大寫字母,        {           $returnstr=$returnstr.substr($sourcestr,$i,1);           $i=$i+1;            //實際的Byte數仍計1個           $n++;            //但考慮整體美觀,大寫字母計成一個高位字元        }        else                //其他情況下,包括小寫字母和半形標點符號,        {           $returnstr=$returnstr.substr($sourcestr,$i,1);           $i=$i+1;            //實際的Byte數計1個           $n=$n+0.5;        //小寫字母和半形標點等與半個高位字元寬...        }     }           if ($str_length>$i){            $returnstr = $returnstr . "...";//超過長度時在尾處加上省略符號        }      return $returnstr;  }

方法2:

//字串截取並且超出顯示省略符號function subtext($text, $length){if(mb_strlen($text, ‘utf8’) > $length)return mb_substr($text,0,$length,’utf8′).’ …’;return $text;}

在模版中調用則:

{$tops.title | subtext=18}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.