文档章节

php输出ascii汉字的疑惑

酒逍遥
 酒逍遥
发布于 2017/02/15 16:06
字数 303
阅读 436
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

php中直接输出汉字的十六进制ascii码会直接得到汉字本身

例如下代码:

echo "\xe4\xbd\xa0\xe5\xa5\xbd";

或者

$str="\xe4\xbd\xa0\xe5\xa5\xbd";

echo $str;

输出结果都是 你好  两个汉字.

 

但是当把字符串 \xe4\xbd\xa0\xe5\xa5\xbd 写到一个文件中.然后php把这个文件读取到一个字符串中.

再直接输出.那么就会输出该字符串本身而不是直接的汉字.

但是如果使用eval 函数 把字符串再进行一次赋值.那么又可以输出汉字了.

很奇怪的现象.

 

估计是php对字符串解析的时候有点问题.

 

由于php里汉字可以作为变量名

于是一段很有趣的代码就诞生了

$str="\xe4\xbd\xa0\xe5\xa5\xbd";

$$str="123";

echo $你好;

会看到可以输出 123

 

经过试验已经大致明白原理了...

试试 echo '\xe4\xbd\xa0\xe5\xa5\xbd' 会看到并没有输出汉字而是字符串本身.

应该是php解析器对变量内容进行解析的时候直接解析成ascii对应的字符串内容了.

酒逍遥

酒逍遥

粉丝 49
博文 40
码字总数 35454
作品 0
武汉
高级程序员
私信 提问
加载中
请先登录后再评论。
sqli-labs(32)

0x1查看源代码 (1)代码关键点  很明显,代码中利用正则匹配将 [ /,'," ]这些三个符号都过滤掉了  pregreplace 0x2 宽字符注入 (1)前言   在mysql中,用于转义的函数有addslashes,...

osc_izu6drnv
2019/05/31
4
0
SQL注入之Sqli-labs系列第三十二关(基于宽字符逃逸注入)

开始挑战第三十二关(Bypass addslashes) 0x1查看源代码 (1)代码关键点  很明显,代码中利用正则匹配将 [ /,'," ]这些三个符号都过滤掉了  function check_addslashes($string){ }pre...

osc_5xirkv3v
2018/04/05
4
0
CTF—WEB—sql注入之宽字节注入

宽字节注入 宽字节注入是利用mysql的一个特性,mysql在使用GBK编码(GBK就是常说的宽字节之一,实际上只有两字节)的时候,会认为两个字符是一个汉字(前一个ascii码要大于128,才到汉字的范...

osc_s03aucrm
2020/09/03
17
0
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换&#XXX函数代码

最近看不少在线工具里面都有一些编码转换的代码,很多情况下我们都用得到,这里脚本之家小编就跟大家分享一下这些资料 Unicode介绍 Unicode(统一码、万国码、单一码)是一种在计算机上使用的...

osc_6lj6izs9
2018/03/07
4
0
PHP中substr() mb_substr() mb_struct()的区别和用法及Smar...

PHP substr(),mbsubstr()及mbstrcut的区别和用法及Smarty模板中的truncate调节器浅谈 PHP substr() 函数可以 分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mbsubstr(...

sco
2012/10/07
646
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS6.9下手动编译并安装Python3.7

CentOS6.9默认安装的python版本为2.6.6,若想安装python3以上版本,只能手工编译安装 下面介绍python3.7.3版本的手动编译并安装的步骤 1、下载Python3.7.3的源码包 https://www.python.org/f...

yuanfan2012
2019/05/09
0
0
用canvas画太极图(一步步详解附带源代码)

canvas绘图 该元素负责在页面中设定一个区域,然后由js动态地在这个区域中绘制图形。这个技术最早是由美国苹果公司推出的,目的是为了取代flash,很快主流浏览器都支持它。 绘制路径 要绘制路...

osc_8adtko4d
4分钟前
0
0
iOS逆向开发(5):微信强制升级的突破

接下来的几篇文章,小程以微信为例,实战地演示一下:如何注入iOS的APP。其中使用到的知识,基本在前面的文章中都有介绍到。 小白:小程,我想用回旧版本的微信! 小程:为什么要用旧版本微信...

广州小程
05/21
0
0
时间格式的处理,前端的时间显示2020-07-13T16:02:00.000+0000

在后端添加@JsonFormat @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") 在这里插public class CdEqInfoVO { /** * 设备id */......

osc_ekw8urc6
5分钟前
0
0
CLion 中的 Makefile 项目:现已公开!

CLion 2020.2 EAP2 带来了期待已久的 Makefile 项目支持。尽管它仍在初期阶段,具有各种局限性和已知问题,但足以应付大量项目。 您有 Makefile 项目吗?查看原文获取免费的 EAP 版本并立即尝...

Bennyhuo
前天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部