编码-截取中文-去除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()都是通过计算字符串所占字节 ...
随机推荐
- SQLdiag-配置文件-PerfmonCollector
前一篇我们已经使用默认配置文件收集了部分诊断数据,并且知道配置文件会影响收集数据的内容.这一篇我们重点讲述配置文件中与性能计数器相关的操作.可使用XML模板控制SQLdiag使用的收集器.每个收集器可 ...
- 右键TXT文件-打开方式-选择默认程序提示 windows无法访问指定设备,路经或文件.您可能没有合适的权限访问这个项目
新建立一个.txt文本,把下面复制到.txt文本点保存,再把.txt文件格式修改为.reg格式, 双击导入注册表就OK了 Windows Registry Editor Version 5.00 [H ...
- linux 设置网卡
配置网卡 修改/etc/sysconfig/network-scripts/ifcfg-eth0文件,如果有多张网卡,则修改相应的网卡 # vim /etc/sysconfig/network-scr ...
- Java jaxp查询节点
<?xml version="1.0" encoding="UTF-8"?> <person> <p1> <name& ...
- cocoapods遇到error: RPC failed; curl 56 SSLRead() return error -36问题
在安装cocoapods遇到的问题 [!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master Cloning into ...
- Hive -- 基于Hadoop的数据仓库分析工具
Hive是一个基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库 ...
- tomcat 6.0.44 “has failed to stop it. This is very likely to create a memory leak” 问题调查
1. 问题起因 我们项目中缓存模块某个实现采用了ehcache(2.4.3),当项目部署到tomcat中后,对tomcat做停止服务操作(点击eclipse的console红色的停止按钮,奇怪的是有小 ...
- Custom IFormatProvider
The following example shows how to write a custom IFormatProvider which you can use in methodString. ...
- j2ee Servlet、Filter、Listener
首先,JSP/Servlet规范中定义了Servlet.Filter.Listener这三种角色,并没有定义Interceptor这个角色,Interceptor是某些MVC框架中的角色,比如Stru ...
- 实验十四_访问CMOS RAM
编程:以"年/月/日 时:分:秒"的格式,显示当前的日期,时间. 注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元外,不要向其他的单元写入内容,否则将引起一些系 ...