编码-截取中文-去除HTML字符
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php header('Content-Type: text/html; charset=utf-8'); function content_replace($show_content){ $search = array( "'<script[^>]*?>.*?</script>'si", //过滤SCRIPT标记 "'<iframe[^>]*?>.*?</iframe>'si", //过滤IFRAME标记 "'<style[^>]*?>.*?</style>'si", //过滤STYLE标记 "'<[\/\!]*span[^<>]*?>'si", //过滤SPAN标记 "'<[\/\!]*strong[^<>]*?>'si", "'<[\/\!]*span[^<]*?>'si", //过滤SPAN标记 "'<[\/\!]*br[^<>]*?>'si", //过滤br标记 "'<[\/\!]*img[^<>]*?>'si", //过滤img标记 "'<[\/\!]*input[^<>]*?>'si", //过滤input标记 "'<[\/\!]*font[^<>]*?>'si", //过滤FONT标记 "'<[\/\!]*textarea[^<>]*?>'si", //过滤textarea标记 "'<[\/\!]*form[^<>]*?>'si", //过滤form标记 "'<[\/\!]*a[^<>]*?>'si", //过滤A标记,如果要过滤链接中的字,必须在过滤规则中写下。 "'<[\/\!]*div[^<>]*?>'si", //过滤DIV标记 "'<[\/\!]*tbody[^<>]*?>'si", //过滤TABLE标记 "'<[\/\!]*table[^<>]*?>'si", //过滤TABLE标记 "'<[\/\!]*tr[^<>]*?>'si", //过滤TABLE标记 "'<[\/\!]*td[^<>]*?>'si", //过滤TABLE标记 "'<[\/\!]*p[^<>]*?>'si", //过滤P标记 "'<[\/\!]*o:p[^<>]*?>'si", //过滤o:p标记 "'<[\?\!]*xml:[^<>]*?>'si", //过滤xml:标记 "'<[\/\!]*select[^<>]*?>'si", //过滤select标记 "'<[\/\!]*option[^<>]*?>'si", //过滤option标记 "'<[\/\!]*v:[^<>]*?>'si", //过滤v:标记 "'<[\/\!]*o:[^<>]*?>'si", //过滤o:标记 "'target=([^\s>]*)|method=([^\s>]*)|action=([^\s>]*)|rows=([^\s>]*)|cols=([^\s>]*)|type=([^\s>]*)|href=([^\s>]*)|src=([^\s>]*)|id=([^\s>]*)|class=([^\s>]*)|name=([^\s>]*)|align=([^\s>]*)|cellpadding=([^\s>]*)|cellspacing=([^\s>]*)|border=([^\s>]*)|bordercolor=([^\s>]*)|background=([^\s>]*)|bgcolor=([^\s>]*)'si", "'&#(\d+);'e", ); $replace = array("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "","", "", "", "", "chr(\\1)"); $show_content = preg_replace($search, $replace, $show_content); $show_content = preg_replace("/style=['\"]*([^'\"]*)['\"]*/is", "", $show_content); $show_content = str_replace("\r\n", "", $show_content); //去除HTML中的换行符 $show_content = str_replace("<span", "", $show_content); //去除HTML中的换行符 $show_content = str_replace(" ", "", $show_content); //去除HTML中的换行符 $show_content = str_replace(" ", "", $show_content); //去除HTML中的换行符 return $show_content; } //中文字符截取函数 function cnsubstr($string, $sublen ,$a=0){ if ($string == ''){ return false; } $string = changeYinhaoCom($string,'out'); $sum = 0; for ($i = 0 ; $i < strlen($string) ; $i++){ if(ord($string{$i}) > 127) { $s .= $string{$i} . $string{++$i} . $string{++$i}; $sum++; continue; } else { $s .= $string{$i}; $sum++; continue; } } if($sublen >= $sum) { return $string; } $s = ""; $index = 0; for($i = 0; $i < $sublen; $i++) { if(ord($string{$index}) > 127) { $s .= $string{$index} . $string{++$index} . $string{++$index}; $index++; continue; } else { $s .= $string{$index}; $index++; continue; } } if($a===0){ $s.="..."; }else{ $s.=$a; } return $s; } function changeYinhaoCom($content , $flag){ if($flag=="in"){ $content = str_replace("\"",""",$content); $content = str_replace("'","'",$content); } if($flag=="out"){ $content = str_replace(""","\"",$content); $content = str_replace("'","'",$content); } return $content; } //调用方法 $str = '这是一段很长的字符串我要把它截取一部分'; echo cnsubstr(content_replace($str),5); echo $res;
编码-截取中文-去除HTML字符的更多相关文章
- PHP substr截取中文字符出现乱码的问题解疑
我们在使用PHP substr截取中文字符的时候,经常会出现乱码的情况,导致程序无法正常运行,这时怎么引起的呢?通过分析,我们知道,主要是substr可能硬生生的将一个中文字符“锯”成两半.解决办法: ...
- 请求大神,C#如何截取字符串中指定字符之间的部分 按指定字符串分割 一分为二 c# 去除字符串中的某个已知字符
string stra = "abcdefghijk";string strtempa = "c";string strtempb = "j" ...
- php截取字符串|php截取字符串前几位|php截取中文字符串
转 截取字符串专题:php截取字符串函数,php 字符串长度,php截取字符串前几位 PHP截取中文字符串(mb_substr)和获取中文 => http://www.q3060.com/lis ...
- 用substr()截取中文出现乱码的解决方法
截取中文字符串时出现乱码(使用substr()函数) 程序一:PHP截取中文字符串方法 function msubstr($str, $start, $len) { $tmpstr = &quo ...
- thinkphp模板中截取中文字符串的方法分享
前段用thinkphp写了一个系统,感觉thinkphp学起来比较容易,开发起来了比较顺手,其中一个关键的因素就是它的模版引擎相当强大,使用方法跟smarty类似,在模版中还可以用php代码,有模版包 ...
- (实用篇)php中计算中文字符串长度、截取中文字符串的函数代码
在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启.当然,如果是用的自己的服务 ...
- PHP截取中文字符串
这里的输出的长度是6,那么一个汉字的字符长度就是3咯,可是老师演示的一个字符的长度却是2,百思不得其解. 查了一下资料发现,这个问题的答案与系统所采用的字符编码方式有关: 1. utf-8 如果系统采 ...
- php中计算中文字符串长度、截取中文字符串
在做PHP开发的时候,由于我国的语言环境问题,所以我们常常需要对中文进行处理.在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数 ...
- php截取中文字符串,英文字符串,中英文字符串长度的方法
今天学习了php函数截取中文字符串,英文字符串,中英文字符串的函数使用方法.对中英文截取方法不理解,此处先做记录. PHP自带的函数如strlen().mb_strlen()都是通过计算字符串所占字节 ...
随机推荐
- 第四篇 Replication:事务复制-订阅服务器
本篇文章是SQL Server Replication系列的第四篇,详细内容请参考原文. 订阅服务器就是复制发布项目的所有变更将传送到的服务器.每一个发布需要至少一个订阅,但是一个发布可以有多个订阅. ...
- Visual Studio 中 UNICODE 宏的设置
项目属性-> 配置属性 -> 常规 -> 字符集 (多字节字符集即没有设置UNICODE宏, 使用Unicode字符集就是设置了UNICODE宏) 设置的效果可以去 C/C++ -& ...
- Postfix Completion 的使用
Postfix Completion 的介绍 Postfix Completion 功能本质上也是代码模板,只是它比 Live Templates 来得更加便捷一点点而已.具体它是做什么的,我们通过下 ...
- C++Primer 第十九章
//1.控制内存分配: //A:某些应用程序对内存分配有特殊的需求,因此我们无法将标准内存管理机制直接应用于这些程序.它们常常需要自定义内存分配的细节,比如使用关键字new将对象放置在特定的内存空间中 ...
- configs for postgresql restart and postgresql reload
-- configs requiring postgresql restart select name, setting, context from pg_settings where context ...
- 强连通+二分匹配(hdu4685 Prince and Princess)
Prince and Princess Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Othe ...
- [原创]java WEB学习笔记65:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) ModelDriven拦截器 paramter 拦截器
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [转]jQueryEasyUI Messager基本使用
一.jQueryEasyUI下载地址 http://www.jeasyui.com/ 二.jQueryEasyUI Messager基本使用 1.$.messager.alert(title, msg ...
- struts_20_对Action中所有方法、某一个方法进行输入校验(基于XML配置方式实现输入校验)
第01步:导包 第02步:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app ...
- visualvm添加远程管理-centos
VisualVM连接远程服务器有两种方式:JMX和jstatd,两种方式都不能完美支持所有功能,例如JMX不支持VisualGC,jstatd不支持CPU监控,实际使用可同时配置上并按需选用. 1.修 ...