大连网站设计公司,无锡网站制作企业,设计签名的软件,花多少钱能把网站做到页面php中关于反斜线转义#xff1a;php中数据的魔法引用函数 magic_quotes_gpc 或 magic_quotes_runtime 设置为on时#xff0c;当数据遇到 单引号 和 双引号 以及 反斜线\ NULL时自动加上反斜线#xff0c;进行自动转义。注释#xff1a;默认情况下#xff0c;PH…php中关于反斜线转义php中数据的魔法引用函数 magic_quotes_gpc 或 magic_quotes_runtime 设置为on时当数据遇到 单引号 和 双引号 以及 反斜线\ NULL时自动加上反斜线进行自动转义。注释默认情况下PHP 指令 magic_quotes_gpc 为 on对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes()因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。magic_quotes_gpc 和 magic_quotes_runtime二者的区别magic_quotes_gpc作用范围是WEB客户服务端作用时间请求开始的时候例如当脚本运行时。 get_magic_quotes_gpc — 获取当前 magic_quotes_gpc 的配置选项设置记住尝试在运行时设置 magic_quotes_gpc 将不会生效,所以没有set_magic_quotes_gpc函数。 magic_quotes_runtime此函数是该函数的别名 set_magic_quotes_runtime() 作用范围从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的作用时间每次当脚本访问运行状态中产生的数据。由此我们可以看出magic_quotes_gpc的设定值将会影响通过GET、POST 和 COOKIE获得的数据magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据 另外还有一个魔术引号magic_quotes_sybase如果打开的话将会使用单引号对单引号进行转义而非反斜线。此选项会完全覆盖magic_quotes_gpc。如果同时打开两个选项的话单引号将会被转义成。而双引号、反斜线 和 NULL 字符将不会进行转义。如何取得其值参见ini_get()。 下面是几个相关的函数set_magic_quotes_runtime():设置magic_quotes_runtime值. 0或者false代表“关闭”.1或者true代表“打开”.默认状态是关闭的.可以通过 echo phpinfo()查看magic_quotes_runtime的当前状态。get_magic_quotes_gpc():查看magic_quotes_gpc值.0或者false代表“关闭”.1或者true代表“打开”。get_magic_quotes_runtime():查看magic_quotes_runtime值。0或者false代表“关闭”.1或者true代表“打开”。需要特别注意的是不存在set_magic_quotes_gpc()这个函数,就是不能在程序里面设置magic_quotes_gpc的值。由于两个值的设置问题会给编程时造成部分混淆或者会多加一次转义针对这种情况需要在程序开始的时候进行设置和判断或者默认配置这两个值都关闭。转义部分通过程序来执行。保证数据插入数据时正常 通常会使用 addslashes 这个来处理 数据读出时多用 stripslashes 来去掉加的反斜杠php中类似的字符转换或者置取的函数ini_get 获取一些配置选项的值addslashes 指定的预定义字符前添加反斜杠stripslashes 删除由 addslashes() 函数添加的反斜杠htmlspecialchars 把一些预定义的字符转换为 HTML 实体htmlspecialchars_decode 把一些预定义的 HTML 实体转换为字符html_entity_decode() 把 HTML 实体转换为字符htmlentities() 把字符转换为 HTML 实体 验证字符转义的小例子 ?phpecho pre;print_r ($_SERVER);//获取php.ini里面的magic quotes gpc配置。这个开启后会把变量值自动加上\来转义一些字符echo get_magic_quotes_gpc(),PHP_EOL; // 1echo $_GET[lastname]; // O\reillyecho addslashes($_GET[lastname]); // O\\\reillyecho $_GET[lastname].000.\n\r;if (get_magic_quotes_gpc()) {$lastname stripslashes($_GET[lastname]);echo $lastname.111.br /;}else {$lastname $_GET[lastname];echo $lastname.222.br /;}? 去转义小例子 ?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);
}
? 转载于:https://www.cnblogs.com/Life-Record/p/5576304.html