这篇文章我们来了解“PHP魔术引号如何使用,为何废弃魔术引号”的内容,小编通过实际的案例向大家展示了操作过程,简单易懂,有需要的朋友可以参考了解看看,那么接下来就跟随小编的思路来往下学习吧,希望对大家学习或工作能有帮助。
注:魔术引号特性已自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除。
当打开时,所有的 '(单引号),"(双引号),\(反斜线)和 NULL 字符都会被自动加上一个反斜线进行转义。这和 addslashes() 作用完全相同。
一共有三个魔术引号指令:
注:本特性已自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除。
注:本特性已自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除。
magic_quotes_gpc 指令只能在系统级关闭,不能在运行时。也就是说不能用 ini_set()。
Example #1 在服务器端关闭魔术引号
下面是一个通过 php.ini 文件把这些选项设为 Off 的范例。
; Magic quotes ; ; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = Off ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. magic_quotes_runtime = Off ; Use Sybase-style magic quotes (escape ' with '' instead of \'). magic_quotes_sybase = Off
如果不能修改服务器端的配置文件,使用 .htaccess 也可以。范例如下:
php_flag magic_quotes_gpc Off
为了能写出移植性较强的代码(可以运行于任何环境),例如不能修改服务器配置的情况,下面的例子可以在运行时关闭 magic_quotes_gpc。但是这样做比较低效,适当的修改配置才是更好的办法。
Example #2 在运行时关闭魔术引号
<?php if (get_magic_quotes_gpc()) { function stripslashes_deep($value) { $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value); return $value; } $_POST = array_map('stripslashes_deep', $_POST); $_GET = array_map('stripslashes_deep', $_GET); $_COOKIE = array_map('stripslashes_deep', $_COOKIE); $_REQUEST = array_map('stripslashes_deep', $_REQUEST); } ?>
注:array_map() 返回一个数组,该数组包含了 arr1
中的所有单元经过 callback
作用过之后的单元。callback
接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
关于“PHP魔术引号如何使用,为何废弃魔术引号”的内容今天就到这,感谢各位的阅读,大家可以动手实际看看,对大家加深理解更有帮助哦。如果想了解更多相关内容的文章,关注我们,群英网络小编每天都会为大家更新不同的知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理