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

php截取字符串函数分享

发布时间:2020-12-13 02:23:26 所属栏目:PHP教程 来源:网络整理
导读:《php截取字符串函数分享》要点: 本文介绍了php截取字符串函数分享,希望对您有用。如果有疑问,可以联系我们。 PHP应用 经常看到有新手问PHP有没有类似asp的left函数或right函数,实现截取某字符串左边或右边开始N个字符的函数.答案当然是有的.PHP中的subst

《php截取字符串函数分享》要点:
本文介绍了php截取字符串函数分享,希望对您有用。如果有疑问,可以联系我们。

PHP应用经常看到有新手问PHP有没有类似asp的left函数或right函数,实现截取某字符串左边或右边开始N个字符的函数.答案当然是有的.PHP中的substr函数就可以做的到,只不过PHP把二个函数合二为一了,这里再给大家分享一个更加优秀的截取字符串的函数.

代码如下:

/**
???? * 办法库-截取字符串-【该函数作者未知】
???? * @param string? $string 字符串?
???? * @param int???? $length 字符长度
???? * @param string? $dot??? 截取后是否添加...
???? * @param string? $charset编码
???? * @return string
???? */
??? public function cutstr($string,$length,$dot = ' ...',$charset = 'utf-8') {
??????? if (strlen($string) <= $length) {
??????????? return $string;
??????? }
??????? $string = str_replace(array('&','"','<','>'),array('&',$string);
??????? $strcut = '';
??????? if (strtolower($charset) == 'utf-8') {
??????????? $n = $tn = $noc = 0;
??????????? while ($n < strlen($string)) {
??????????????? $t = ord($string[$n]);??????????????? //ASCII?
??????????????? if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
??????????????????? $tn = 1; $n++; $noc++;
??????????????? } elseif (194 <= $t && $t <= 223) {
??????????????????? $tn = 2; $n += 2; $noc += 2;
??????????????? } elseif (224 <= $t && $t < 239) {
??????????????????? $tn = 3; $n += 3; $noc += 2;
??????????????? } elseif (240 <= $t && $t <= 247) {
??????????????????? $tn = 4; $n += 4; $noc += 2;
??????????????? } elseif (248 <= $t && $t <= 251) {
??????????????????? $tn = 5; $n += 5; $noc += 2;
??????????????? } elseif ($t == 252 || $t == 253) {
??????????????????? $tn = 6; $n += 6; $noc += 2;
??????????????? } else {
??????????????????? $n++;
??????????????? }
??????????????? if($noc >= $length) {
??????????????????? break;
??????????????? }
??????????? }
??????????? if ($noc > $length) {
??????????????? $n -= $tn;
??????????? }
??????????? $strcut = substr($string,$n);
??????? } else {
??????????? for ($i = 0; $i < $length; $i++) {
??????????????? $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
??????????? }
??????? }
??????? $strcut = str_replace(array('&',$strcut);
??????? return $strcut.$dot;
??? }

以上就是本文的全部内容,希望大家能够喜欢.

编程之家培训学院每天发布《php截取字符串函数分享》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

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

    推荐文章
      热点阅读