php.ini magic_quotes_gpc,PHP.ini之magic_quotes_gpc

substr()函数在 php manual 中这么给出的:

string substr ( string $string, int $start [, int $length] )

Returns the portion of string specified by the 'start' and 'length' parameters.

用起来很方便也很强大:将字符串 string 的第 start 位起的字符串取出 length 个字符。若 start 为负数,则从字符串尾端算起。若可省略的参数 length 存在,但为负数,则表示取到倒数第 length 个字符。比如:

substr("abcdef", -3, 1); // returns "d"

substr("abcdef", -3, -1); // returns "de"

但是函数越强大也越容易被用错,比如这个情况:

echo substr($_GET['text'], 1);

?>

功能看起来很简单,就是从我们提交的 text 里第二位开始取值取到最后。

所以如果我们提交 的时候,echo 出来的应该是 bcd 。

而当我们提交 ’bcd 的时候,则会显示 'bcd ,因为 substr() 在我们提交 'bcd 的时候实际操作的是 \'bcd,串里还有一个看不到的反斜杠,而'\'被 substr 给去掉了,然后留下 'bcd 这样的字符串。

而substr()函数操作的字符串是\'bcd的原因是:php.ini文件中magic_quotes_gpc设置为了On,这个参数是对得到的GET/POST/Cookie的字符串进行自动转义的:

; Magic quotes for incoming GET/POST/Cookie data.

magic_quotes_gpc = On

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值