php截取字符串函数分享


Posted in PHP onFebruary 02, 2015

经常看到有新手问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, 0, $n);

        } else {

            for ($i = 0; $i < $length; $i++) {

                $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];

            }

        }

        $strcut = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $strcut);

        return $strcut.$dot;

    }

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

PHP 相关文章推荐
某大型网络公司应聘时的笔试题目附答案
Mar 27 PHP
用来给图片加水印的PHP类
Apr 09 PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
Mar 02 PHP
PHP操作数组相关函数
Feb 03 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
Dec 11 PHP
php常用Stream函数集介绍
Jun 24 PHP
PHP中数据类型转换的三种方式
Apr 02 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
PHP中ajax无刷新上传图片与图片下载功能
Feb 21 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
laravel框架邮箱认证实现方法详解
Nov 22 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
Dec 30 PHP
php计算2个日期的差值函数分享
Feb 02 #PHP
php获取当月最后一天函数分享
Feb 02 #PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
Feb 02 #PHP
php递归创建目录的方法
Feb 02 #PHP
在Nginx上部署ThinkPHP项目教程
Feb 02 #PHP
PHP中开启gzip压缩的2种方法
Jan 31 #PHP
PHP调试函数和日志记录函数分享
Jan 31 #PHP
You might like
利用PHP创建动态图像
2006/10/09 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
php查看当前Session的ID实例
2015/03/16 PHP
php获得文件夹下所有文件的递归算法的简单实例
2016/11/01 PHP
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
微信小程序 支付简单实例及注意事项
2017/01/06 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
详解AngularJS之$window窗口对象
2018/01/17 Javascript
从parcel.js打包出错到选择nvm的全部过程
2018/01/23 Javascript
Vue 中mixin 的用法详解
2018/04/23 Javascript
nodejs二进制与Buffer的介绍与使用
2019/07/11 NodeJs
VUE解决 v-html不能触发点击事件的问题
2019/10/28 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
JS实现canvas简单小画板功能
2020/06/23 Javascript
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
python高阶爬虫实战分析
2018/07/29 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
捷克钓鱼用品网上商店:Parys.cz
2018/06/15 全球购物
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
医院护士专业个人的求职信
2013/12/09 职场文书
酒店节能减排方案
2014/05/26 职场文书
校园主题婚礼活动策划方案
2014/09/15 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
详解Python牛顿插值法
2021/05/11 Python
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
基于Python编写一个监控CPU的应用系统
2022/06/25 Python