首页 > php教程 > php手册 > 正文

php 截取字符串函数(中文字符串)(1/2)

php中文网
发布: 2016-06-13 09:57:53
原创
1046人浏览过

php 截取字符串函数(中文字符串) 这是一款php 截取字符串函数哦,这是一款支持中文字符串哦,它可以截取html与中西文,等混合的内容,并且把html标签不算在字符截取之内,如果html标签没有闭合,程序将自动过滤多余的标签。

php教程 截取字符串函数(中文字符串)
这是一款php 截取字符串函数哦,这是一款支持中文字符串哦,它可以截取html与中西文,等混合的内容,并且把html标签不算在字符截取之内,如果html标签没有闭合,程序将自动过滤多余的标签。
*/

function mysubstr( $str, $length ){         $tagcnt = 0;     $charcnt = 0;     $tag = '';     $maxlen = strlen( $str );     $resultstr = '';     $tagstack = array();     for( $i = 0; $i ';                         //如果是开始标记,则入栈,如果是与之相对应的结束标记则出栈             if( preg_match('//i', $tag, $r) ){                 echo '入栈:',htmlspecialchars($r[1]),'';                 array_push($tagstack, $r[1]);             }             elseif( preg_match( '/'.$tagstack[count($tagstack)-1].'/', $tag ) ){                 echo '出栈:',htmlspecialchars($tagstack[count($tagstack)-1]),'';                 array_pop( $tagstack );             }             $tag = '';             continue;         }         $charcnt++;         $resultstr .= $str[$i];     }         echo '最后结果为:';     //栈是空的直接返回     if(empty($tagstack)){         return $resultstr;     }     //否则去掉没有结束标记的开始标记     else{                 while(!empty($tagstack)){             $tag = array_pop($tagstack);             $index = strrpos($resultstr, $tag);             for($i = $index-1; $resultstr[$i] != '>'; $i++ ){                 $resultstr[$i] = '';             }             $resultstr[$i++] = '';                 }         return $resultstr;     }     } $sttime = microtime(true); $stmem = memory_get_usage(); $str = "a1b2c3d4e5f6g7h8"; echo '处理结果为:',htmlspecialchars( mysubstr( $str, 18 ) ),''; echo "内存使用情况:",(memory_get_usage()-$stmem),''; echo "算法运行时间(microtime):",(microtime(true)-$sttime),'';

//方法二

/

**
 * 函数名 html_substr
 * 功能 从html串中截取指定长度的字串,html标记不计算在内
 * 参数
 *  $str 要截取的串
 *  $len 要截取的长度
 *  $mode 不匹配的标记的处理方式 0 删去(默认),1 补齐
 * 返回 截取到的串
 * 说明
 *  未考虑多字节字符,仅已字节做计数单位
 *  未考虑可单独存在的标记
 **/
function html_substr($str, $len, $mode=0) {
  $ar= preg_split('/(|]*>)/s', $str, -1, preg_split_delim_capture);
  foreach($ar as $k => $v) {
    if($v{0} != '       $len = $len - strlen($v);
      if($len     }else $ar[$k] = strtolower($v);
    if($len   }
  $ar = array_slice($ar, 0, $k+1);
  $len = count($ar);
  foreach($ar as $k=>$v) {
    if($v{0} == '       $ch = str_replace('       for($i=$k+1; $i       if($i == $len)
        if($mode)
          $ar[$len] = $ch . $ar[$len];
        else
          $ar[$k] = '';
    }
  }
  return join('', $ar);
}
$str = "123abc456def789";

echo '

10分钟内自己学会PHP
10分钟内自己学会PHP

10分钟内自己学会PHP其中,第1篇为入门篇,主要包括了解PHP、PHP开发环境搭建、PHP开发基础、PHP流程控制语句、函数、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、日期和时间等内容;第2篇为提高篇,主要包括MySQL数据库设计、PHP操作MySQL数据库、Cookie和Session、图形图像处理技术、文件和目录处理技术、面向对象、PDO数据库抽象层、程序调试与错误处理、A

10分钟内自己学会PHP 524
查看详情 10分钟内自己学会PHP
';<br> echo html_substr($str, 5) . php_eol;<br> echo html_substr($str, 5, 1);

1 2

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号