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 相关文章推荐
PHP中实现进程间通讯
Oct 09 PHP
php 删除记录实现代码
Mar 12 PHP
浅析linux下apache服务器的配置和管理
Aug 10 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
PHP内存使用情况如何获取
Oct 10 PHP
PHP实现连接设备、通讯和发送命令的方法
Oct 13 PHP
PHP工程师VIM配置分享
Dec 15 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 PHP
在php7中MongoDB实现模糊查询的方法详解
May 03 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
PHP ADODB生成下拉列表框功能示例
May 29 PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 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 高级课程笔记 面向对象
2009/06/21 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
解析php框架codeigniter中如何使用框架的session
2013/06/24 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
使用layer弹窗和layui表单实现新增功能
2018/08/09 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
layui时间控件选择时间范围的实现方法
2019/09/28 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
2020/04/27 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
用Python编程实现语音控制电脑
2014/04/01 Python
Python datetime和unix时间戳之间相互转换的讲解
2019/04/01 Python
python中open函数的基本用法示例
2019/09/07 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
scrapy-splash简单使用详解
2021/02/21 Python
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
Lulu & Georgia官方网站:购买地毯、家具、抱枕、壁纸、床上用品等
2018/03/19 全球购物
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
掌上明珠Java程序员面试总结
2016/02/23 面试题
采购助理岗位职责
2014/02/16 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
Python 数据可视化之Seaborn详解
2021/11/02 Python
一条 SQL 语句执行过程
2022/03/17 MySQL
使用Python拟合函数曲线
2022/04/14 Python