7 把复杂的数据类型压缩到一个字符串中
7.2 magic_quotes_gpc 魔术引号开关
7.2.1 魔术引号开关的功能:
如果输入的数据有单引号 ' 、双引号 " 、反斜杠 \ 、会自动加上反斜杠,以防sql注入等恶意代码
7.2.2 开启此功能
在php.ini中设置
magic_quotes_gpc = On
此功能仅在在 <= php5.4的版本里可用,之后的版本不可用!!
7.2.3 使用方式:
$shopping_cart = array("芝麻饼干\'小饼干"=>2, '原味坚果'=>1, '鱼子酱'=>4 ); print '<a href="next.php?cart='.urlencode(serialize($shopping_cart)).'">Next</a>';
next.php
$is = get_magic_quotes_gpc(); var_dump($is); $cart = $_GET['cart']; var_dump($cart); $cartOn = unserialize($cart); var_dump($cartOn);
结果
直接用unserialize解码会返回错误
这时需要使用stripslashes函数先去掉多余的反斜杠
$cartOff = unserialize(stripslashes( $cart)); var_dump($cartOff);
即可正确解析:
最佳使用方式:为了代码的通用性:
function stripslashesed($content) { if (get_magic_quotes_gpc()) { return stripslashes($content); } return $content; } $cartNew = unserialize(stripslashesed($cart)); var_dump($cartNew);
标签:dump,cart,7.2,quotes,实例,unserialize,第五章,var,php From: https://www.cnblogs.com/polax/p/18470612