`
zyb_icanplay
  • 浏览: 27168 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

php:一个截取指定长度的方法

 
阅读更多
PHP语言:<wbr></wbr>根据中文裁减字符串

function cutstr($string, $length, $dot = ' ...') {
<wbr><wbr>if (strlen($string) &lt;= $length) {</wbr></wbr>
<wbr><wbr><wbr><wbr>return $string;</wbr></wbr></wbr></wbr>
<wbr><wbr>}</wbr></wbr>
<wbr><wbr>$pre = chr(1);</wbr></wbr>
<wbr><wbr>$end = chr(1);</wbr></wbr>
<wbr><wbr>$string = str_replace(array('&amp;', '"', '&lt;', '&gt;'), array($pre . '&amp;'. $end, $pre . '"' . $end, $pre . '&lt;' . $end, $pre . '&gt;' . $end), $string);</wbr></wbr>
<wbr><br><span style="color: rgb(32, 32, 32);"><wbr><wbr>$strcut = '';</wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr>if (strtolower(CHARSET) == 'utf-8') {</wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr>$n = $tn = $noc = 0;</wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr>while ($n &lt; strlen($string)) {</wbr></wbr></wbr></wbr></span><br><wbr><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr>$t = ord($string[$n]);</wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr>if ($t == 9 || $t == 10 || (32 &lt;= $t &amp;&amp; $t &lt;= 126)) {</wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$tn = 1;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$n++;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$noc++;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr>} elseif (194 &lt;= $t &amp;&amp; $t &lt;= 223) {</wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$tn = 2;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$n += 2;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$noc += 2;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr>} elseif (224 &lt;= $t &amp;&amp; $t &lt;= 239) {</wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$tn = 3;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$n += 3;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$noc += 2;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr>} elseif (240 &lt;= $t &amp;&amp; $t &lt;= 247) {</wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$tn = 4;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$n += 4;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$noc += 2;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr>} elseif (248 &lt;= $t &amp;&amp; $t &lt;= 251) {</wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$tn = 5;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$n += 5;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$noc += 2;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr>} elseif ($t == 252 || $t == 253) {</wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$tn = 6;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$n += 6;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$noc += 2;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr>} else {</wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>$n++;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></span><br><wbr><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr>if ($noc &gt;= $length) {</wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>break;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr>}</wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr>if ($noc &gt; $length) {</wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr>$n -= $tn;</wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr>}</wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr>$strcut = substr($string, 0, $n);</wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr>} else {</wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr>for ($i = 0; $i &lt; $length; $i++) {</wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr><wbr><wbr>$strcut .= ord($string[$i]) &gt; 127 ? $string[$i] . $string[++$i] : $string[$i];</wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr>}</wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr>}</wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr>$strcut = str_replace(array($pre . '&amp;' . $end, $pre . '"' . $end, $pre . '&lt;' . $end, $pre . '&gt;' . $end), array('&amp;', '"', '&lt;', '&gt;'), $strcut);</wbr></wbr></span><br><wbr><br><span style="color: rgb(32, 32, 32);"><wbr><wbr>$pos = strrpos($strcut, chr(1));</wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr>if ($pos !== false) {</wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr><wbr><wbr>$strcut = substr($strcut, 0, $pos);</wbr></wbr></wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr>}</wbr></wbr></span><br><span style="color: rgb(32, 32, 32);"><wbr><wbr>return $strcut . $dot;</wbr></wbr></span><br><span style="color: rgb(32, 32, 32);">}</span></wbr></wbr></wbr></wbr>
分享到:
评论

相关推荐

    使用php实现截取指定长度

    以下是对使用php实现截取指定长度的方法进行了详细的分析介绍,需要的朋友可以过来参考下

    php截取指定2个字符之间字符串的方法

    本文实例讲述了php截取指定2个字符之间字符串的方法。分享给大家供大家参考。具体如下: 在php中只要判断字符串1与字符串2之前的一个stripos位置然后再使用substr开始截取就可以了,这里给大家介绍一个简单例子。 ...

    PHP中字符串长度的截取用法示例

    本文实例讲述了PHP中字符串长度的截取用法。分享给大家供大家参考,具体如下: ...//这里设置显示字符串的编码格式 //输出'船上,有一个漂' ?&gt; 这里的编码格式一定得注意,处理不当有可能出现乱码。 更多关于

    PHP函数库,PHP函数大全,PHP函数实例,PHP函数手册,PHP5函数库实例

    截取指定长度字符串 折线图 按照比例改变图片大小(非生成缩略图) 收藏主页 数据验证类 数组转换成XML格式 日期计算 是否为电子邮件格式 柱形统计图 检查是否为一个合法的时间格式 检测URL地址有效性 检测...

    判断是否为指定长度内字符串的php函数

    复制代码 代码如下: //———————————————————————————– // 函数名:CheckLengthBetween($C_char, $I_len1, $I_len2=100) // 作 用:判断是否为指定长度内字符串 // 参 数:$C_char(待...

    PHP判断字符串长度的两种方法很实用

    在PHP中,所有的变量都是用一个结构-zval来保存的,strlen虽然是直接获取其中的len,但是仍然有一次函数调用,而isset是PHP的语法结构,所以更快!所以在判断字符串是否大于或小于多少个字符时可以使用第二种方法。 ...

    php按单词截取字符串的方法

    本文实例讲述了php按单词截取字符串的方法。分享给大家供大家参考。具体分析如下: 这里指定字符串和单词数量进行截取 复制代码 代码如下:&lt;?php function limit_words($string, $word_limit) {  $words = ...

    Mysql字符串截取函数SUBSTRING的用法说明

    感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用。 函数: 1、从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:...

    php对包含html标签的字符串进行截取的函数分享

    这个方法的作用是:php截取含有html标签的字符串,如果标签未闭合就闭合标签,防止未闭合的标签破坏原网页布局。截取完之后将多余的内容替换为…或者其他任意字符,支持锚点指定替换到指定位置。 /* * ============...

    php字符串处理方法大全

    绝对的齐全,绝对的有用,绝对的正确,绝对的能帮助你。

    详解PHP用substr函数截取字符串中的某部分

    经常看到有新手问PHP有没有类似asp的left函数或right函数,实现截取某字符串左边或右边开始N个字符的函数。答案当然是有的。PHP中的substr函数就可以做的到,只不过PHP把二个函数合二为一了。 现在整理了一下substr...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    JSPExample3.jsp 计算一光年的距离 JSPExample4.jsp JSP页面中计算圆的面积 JSPExample5.jsp JSP页面中字符数据的简单使用 JSPExample6.jsp 结合布尔类型变量判断学生成绩等级 JSPExample7...

    php 常用的系统函数

    strrev:字符串反转(只能反转英文:英文存储只有一个字节),按照字节进行反转 strpos:从字符串中找对应字符出现的位置(数字下标),从最左边开始找 strrpos:与strpos一样,只是从字符串的右边开始找 trim:去掉...

    PHP中substr函数字符串截取用法分析

    0 – 在字符串中的第一个字符处开始 length  可选。规定被返回字符串的长度。默认是直到字符串的结尾。 正数 – 从 start 参数所在的位置返回的长度 负数 – 从字符串末端返回的长度 示例代码如下: &lt;?php

    php部分常见问题总结

    目录: 1:为什么我得不到变量 2:调试你的程序 3:如何使用session 4:为什么我向另一网页传送变量时,只得到前半部分,以空格开头的则全部丢失 5:如何截取指定长度汉字而不会出现以”?&gt;”结尾,超出部分以”…”代替...

    php字符串截取函数mb_substr用法实例分析

    本文实例讲述了php字符串截取函数mb_substr用法。分享给大家供大家参考,具体...$start,$str中要使用的第一个字符的位置 $length,获取的子字符串的长度(注意不是结束位置) $encoding,可指定字符编码(一般用于处理中

    PHP开发实战1200例源码

    实例128 获取数组中最后一个元素 158 实例129 去除数组中的重复元素 158 实例130 字符串与数组的转换 159 实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例128 获取数组中最后一个元素 158 实例129 去除数组中的重复元素 158 实例130 字符串与数组的转换 159 实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例128 获取数组中最后一个元素 158 实例129 去除数组中的重复元素 158 实例130 字符串与数组的转换 159 实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 ...

Global site tag (gtag.js) - Google Analytics