PHP & Javascript 如何对字符串中包含html标签进行编码 整理
为什么要对字符串编码?
某些字符串中包含html标签,不编码,页面输出就乱了。
PHP下怎么对字符串编码?
htmlentities
vs htmlspecialchars
htmlentities 与htmlspecialchar 区别:
htmlentities is
identical to htmlspecialchars() in
all ways, except with htmlentities(),
all characters which have HTML character entity equivalents are translated into these entities.
除了不加参数直接调用htmlentities()以外,这2个function是等价的。
不加参数直接调用htmlentities()时,会把输入的字符串全部当作html标签去编码,所以会产生乱码。
htmlspecialchars只处理这几种字符:
- '&' (ampersand) becomes '&'
- '"' (double quote) becomes '"' when
ENT_NOQUOTES
is
not set. - "'" (single quote) becomes ''' (or ') only when
ENT_QUOTES
is
set. - '<' (less than) becomes '<'
- '>' (greater than) becomes '>'
都支持同样的编码参数:
ENT_COMPAT |
Will convert double-quotes and leave single-quotes alone. |
ENT_QUOTES |
Will convert both double and single quotes. |
ENT_NOQUOTES |
Will leave both double and single quotes unconverted. |
ENT_IGNORE |
Silently discard invalid code unit sequences instead of returning an empty string. Using this flag is discouraged as it » may have security implications. |
ENT_SUBSTITUTE |
Replace invalid code unit sequences with a Unicode Replacement Character U+FFFD (UTF-8) or &#FFFD; (otherwise) instead of returning an empty string. |
ENT_DISALLOWED |
Replace invalid code points for the given document type with a Unicode Replacement Character U+FFFD (UTF-8) or &#FFFD; (otherwise) instead of leaving them as is. This may be useful, for instance, to ensure the well-formedness of XML documents with embedded external content. |
ENT_HTML401 |
Handle code as HTML 4.01. |
ENT_XML1 |
Handle code as XML 1. |
ENT_XHTML |
Handle code as XHTML. |
ENT_HTML5 |
Handle code as HTML 5. |
参考:点击打开链接http://php.net/manual/zh/function.htmlentities.php
点击打开链接http://php.net/manual/zh/function.htmlspecialchars.php
javascript 中怎么对字符串编码?
js中只有 encodeURI(),encodeURIComponent(),escape()
前两个只对uri编码,后一个编码范围太大
参考: 点击打开链接http://www.w3school.com.cn/jsref/jsref_encodeURIComponent.asp
点击打开链接http://www.w3school.com.cn/jsref/jsref_encodeURIComponent.asp
为什么要对URI编码?
参考:http://www.cnblogs.com/leaven/archive/2012/07/12/2588746.html点击打开链接
js中如何对包含html标签字符串编码,一般做法:
function html_encode(str) {
var s = "";
if (str.length == 0) return "";
s = str.replace(/&/g, ">");
s = s.replace(/</g, "<");
s = s.replace(/>/g, ">");
s = s.replace(/ /g, " ");
s = s.replace(/\'/g, "'");
s = s.replace(/\"/g, """);
s = s.replace(/\n/g, "<br>");
return s;
}
PHP & Javascript 如何对字符串中包含html标签进行编码 整理的更多相关文章
- 【HTML】处理<br>换行符追加到前端换行无效的问题 --- html中渲染的字符串中包含HTML标签无效的处理方法,字符串中包含HTML标签被转义的问题 解决
需求如下图: 追加给前台后,效果如下: 可以在源码看到: 是将后台给出来的数据,直接当作字符串给填充在了前台HTML中. 而查看浏览器编译后的HTML源码可以发现: 原来字符串中的<br> ...
- jsp 页面 摘要, 要截取字符串 ,当时 字符串中包含 html标签,截取后无法显示
如题: 处理办法: 1. 使用struts标签 <s:property value ="#text.replaceAll('<[^>]+>','').substr ...
- JavaScript确定一个字符串是否包含在另一个字符串中的四种方法
一.indexOf() 1.定义 indexOf()方法返回String对象第一次出现指定字符串的索引,若未找到指定值,返回-1.(数组同一个概念) 2.语法 str.indexOf(searchVa ...
- C# String.Format格式化json字符串中包含"{" "}"报错问题
json.Append(String.Format("{\"total\":{0},\"row\":{1}}", lineCount, st ...
- oracle 使用正则表达式获取字符串中包含的数字
select REGEXP_REPLACE('字符串中包含的数字123,提取后就是123', '[^0-9]', '') from dual;
- Java:判断字符串中包含某字符的个数
Java:判断字符串中包含某字符的个数 JAVA中查询一个词在内容中出现的次数: public int getCount(String str,String key){ if(str == null ...
- Oracle字符串中包含数字、特殊符号的排序
问题描述: 某小区,需要按照小区.楼栋.单元号.房间号进行排序,但是按照地址描述排序时,因为字符串中包含数字,所以造成了如下的结果, 1号楼之后应该是2号楼,但是查询结果却是10号楼 . 尝试解决 使 ...
- php读取出字符串中的img标签中的图片路径
php读取出字符串中的img标签中的图片路径 $pageContents = '字符串,带img标签'; $pageContents = str_replace('\"','"', ...
- js去除字符串中所有html标签及 符号
近日在做项目的时候,经常会在页面上处理一些数据.结果发现自己js掌握的并不是很好.那就在这里记录js的点点滴滴吧. 1. 去除字符串中的 html 标签 function delHtmlTag(str ...
随机推荐
- PC-XP系统忘记密码怎么办
(一)以恢复本地用户"*****"口令为例,来说明解决忘记登录密码的步骤:1.重新启动计算机,在启动画面出现后马上按下F8键,选择"带命令行的安全模式".2.运 ...
- ios 开发选取头像,图片库,相机,裁取图片
需要遵守的代理协议:UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate @prop ...
- 如何通过进程名获取进程ID
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何通过进程名获取进程ID.
- PHP基本语法(二)
[重点,哪些情况我们会将其它类型的值视为bool值的假:]1. 整型的0会视为bool值的假来执行,任何非0的整型都视为真2. 浮点的0.0不论后面有多少个0都视为假0.000000000,后面只要有 ...
- int& a = b 的思考
在PCL显示点云部分程序中,涉及到了如下程序 // 定义相关变量 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_ptr (new pcl::Point ...
- Android Studio 完美修改应用包名
我们平时新建项目有些朋友可能当时就是随意写的一个包名,然后在项目过程中, 又感觉这个包名不太好,所以就要对包名进行修改,根据我们正常的修改方式,是这样的. 在种情况是只能修改最外层的那个名称, 如果我 ...
- CentOS下挂载U盘
插入U盘提示: [sdb] No Caching mode page present [sdb] Assuming drive cache: write through 再用fdisk -l 来查看U ...
- Awake和Start
经过查阅资料和自己的理解整理出来的,欢迎大家指教. Awake和Start对比 awake比start先执行. 当有多个类的时候,所有类的awake执行完了才会执行start. awake里面一般放初 ...
- 使用ExpandableListView实现一个时光轴
在许多App上都能看到时光轴的效果,比如携程等等,那么我们今天就利用ExpandableListView来实现一个时光轴效果,先来看看效果图: 效果还是挺简单的,这里我们主要是采用Expandable ...
- 如何运用管理员身份运行cmd窗口?
所有程序 → 附件 → 命令行提示符 → 鼠标右键“以管理员身份运行”.