聚 齐 网 怎 么 退 款→&变形金刚primee;←

大师推荐热点专题
大师推荐热点专题
下一篇: &
& 上一篇:
请购热线(早9:00-晚8:30)
地址:北京市 北京东燕郊 天洋城32号楼1单元29层HTML特殊字符编码对照表
核心提示:HTML特殊字符编码对照表,需要的朋友可以收藏下...HTML特殊字符编码对照表特殊符号命名实体十进制编码特殊符号命名实体十进制编码
&HTML特殊字符编码对照表,需要的朋友可以收藏下...
HTML特殊字符编码对照表
十进制编码
十进制编码
十进制编码
温馨提示:您正在浏览的文章标题是
“HTML特殊字符编码对照表”
原载地址: /diannao/show.php?itemid=50
版权声明:本网站刊载的资讯由网友提供分享,资讯内容纯属作者个人观点,不表示星际电力信息网同意其说法或描述,仅为提供更多信息,也不构成任何建议。网友转载请注明原作者姓名及出处。如有侵犯到您的版权,请与我们联系。对于星际电力信息网的原创作品,受国家知识产权保护,版权属于星际电力信息网所有。转载务必注明出处及作者。凡用于商业用途需征得书面同意,否则追究法律责任。2591人阅读
作者:林子木& wolinxuebin
转载请保留:http://blog.csdn.net/wolinxuebin
&&& 由于还是码农新人,所以还未开始正式的编写大的工程代码,所以老员工给了我一个去年写的大的PHP工程的工程代码,先看下。抱着必须扫清每个死角的心里,下午碰到了
shtmlspecialchars()函数,网上一查挺多人都在用的,但不是PHP自带的,而是莫比较官方的写的。但是这里面的正则表达式着实让我纠结了一方,不讲废话了,切入正题。
function shtmlspecialchars($string) {
&& &if(is_array($string)) {
&& &&& &foreach($string as $key =& $val) {
&& &&& &&& &$string[$key] = shtmlspecialchars($val);
&& &} else {
&& &&& &$string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1',
&& &&& &&& &str_replace(array('&', '&', '&', '&'), array('&', '&', '&', '&'), $string));
&& &return $
以上就是shtmlspecialchars()函数的定义,其他的不讲,就讲这句让很多人揪心的
$string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1',
str_replace(array('&', '&', '&', '&'), array('&', '&', '&', '&'), $string));
这里先介绍下这个函数的作用:
html中可能出现的四种特殊字符进行转义,分别是
&转&(ps:这个后面的分号&;&是连在一起的,一个整体,不是作者为了分隔用的)
这与PHP自带的htmlspecialchars()效果刚好相反。
那么一般人里面会用下面的代码实现这个函数所要实现的功能
str_replace(array('&', '&', '&', '&'), array('&', '&', '&', '&'), $string));
但是等一等!
问:等什么?不是已经完成了这个功能了?
答:错,大错,特错了,你这叫宁可枉杀3000,不放过一个,不人道的呀。
问:哪里错了?
答:情况下面的内容!
如果仅仅用上面的函数,那么会将html特殊字符和unicode编码都破坏掉这可不是我们要的结果,具体字符表见文章后面的附件。
有人观察了字符表的所有数据,最后得出下面的结论:
1、html特殊字符都是由&#开头后面加3-5个数字或者&#开头加一个字符和2-5个字符或数字组成的字符串
2、unicode编码是以&#开头后面加4个16进制数字组成的字符串。
根据第一条,我们应该写出正则表达式:&#/d{3,5}|[a-zA-Z][a-zA-Z0-9]{2,5};(ps:这个也是自带分号&;&的)
根据第二条,可以得出&#[a-fA-F0-9]{4}; (ps:因为16进制是从0-f)
又由于前面的操作已经把&替换成了&所以讲上面两条整合下就出了下面的
/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/
有人问,是不是可以写成下面的样子
/&#(((\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/
把井号提出来,当然可以,不过如果你要这样写,后面的再提,有些下改动。
我们把第一步操作
str_replace(array('&', '&', '&', '&'), array('&', '&', '&', '&'), $string));
结果写成$string
那么反替换我们就可以简略的写成
preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1',$string)
这里,前面的正则表达式已经很清楚了,但是作者又后面的&\\1搞晕了,什么意思呀?
经查证\1代表正则表达式的第一个括号内的内容。
自己写了一个测试
$string = 'x10p';
$string1 = preg_replace('/(x)([0-9]+)p/', '&\\1',$string);
$string2 = preg_replace('/x([0-9]+)p/', '&\\1',$string);
echo $string1;
echo '&br /&';
echo $string2;
输出的结果分别是
&x & & & &第一括号内的是 x
&10 & & 第一括号内的是10
preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1',$string)
结果就是仅仅把$替换为&而后面的保留不变。
到这可以解决上面的问题1,是否可以把#拿出来,如果你吧#拿出来的话,那么就是说会将&#都用&替换,然后后面的你得写'&#\\1',这样就可以,不过是不是感觉
多此一举了?是的!
参考文献:
【1】 http://blog.csdn.net/wolinxuebin/article/details/7604194 《php正则表达式详解》
【2】http://www.jb51.net/onlineread/htmlchar.htm HTML字符表
【3】http://deerchao.net/tutorials/regex/regex.htm 30分钟正则表达式入门
【4】http://topic.csdn.net/u//391a9a98-a457-451a-84d3-92d8f60ff0c0.html & 关于uchome函数里面的shtmlspecilachars的功能 【5】http://s.yanghao.org/program/viewdetail.php?i=8324
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& html 字符表
十进制编码
十进制编码
十进制编码
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:480630次
积分:4508
积分:4508
排名:第4278名
原创:87篇
转载:63篇
评论:55条
(1)(5)(1)(2)(1)(2)(4)(1)(2)(1)(5)(2)(1)(1)(2)(1)(11)(27)(16)(16)(12)(22)(13)(1)当前位置: →
→ HTML特殊转义字符列表
HTML特殊转义字符列表
& 作者及来源: 穆乙 - 博客园 &
&收藏到→_→:
摘要: HTML特殊转义字符列表
"HTML特殊转义字符列表"::
最常用的字符实体character entities
显示说明实体名称实体编号
半方大的空白
全方大的空白
不断行的空白格
已注册商标
商标(美国)
iso 8859-1 (latin-1)字符集
html 4.01 支持 iso 8859-1 (latin-1) 字符集。
备注:为了方便起见,以下表格中,&实体名称&简称为&名称&,&实体编号&简称为&编号&
显示名称编号显示名称编号显示名称编号显示名称编号显示名称编号
数学和希腊字母标志symbols, mathematical symbols, and greek letters
显示名称编号显示名称编号显示名称编号显示名称编号显示名称编号
重要的国际标记markup-significant and internationalization characters
显示名称编号显示名称编号显示名称编号显示名称编号显示名称编号
搜索此文相关文章:特殊转义字符列表此文来自: 马开东博客
网址: 站长QQ
HTML特殊转义字符列表_博客园相关文章
博客园_总排行榜
博客园_最新
博客园_月排行榜
博客园_周排行榜
博客园_日排行榜

我要回帖

更多关于 变形金刚prime 的文章

 

随机推荐