首页 > 编程语言 >《php经典实例》5 第五章 变量

《php经典实例》5 第五章 变量

时间:2024-10-16 19:31:57浏览次数:7  
标签:dump cart 7.2 quotes 实例 unserialize 第五章 var php

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

相关文章

  • php部分函数及命令
    lsls:这是一个在Unix/Linux系统中广泛使用的命令,用于列出目录内容。file_get_contents()file_get_contents()把整个文件读入一个字符串中。<?phpechofile_get_contents("test.txt");?>将输出这个文本的内容preg_matchpreg_match函数用于执行一个正则表达式匹......
  • PHP函数func_get_args
    函数func_get_args()是PHP中的一个内置函数,其主要功能是获取用户自定义函数中的参数,并将这些参数以数组的形式返回。这个函数允许用户在不明确指定参数数量的情况下,灵活地处理函数接收到的所有参数。以下是对func_get_args()函数的详细解释:功能描述返回参数数组:func_get_args......
  • php8安装fileinfo扩展失败
    报错信息:Infileincludedfrom/usr/include/string.h:633,from/usr/local/php-8.1.0/include/php/main/../main/php_config.h:2210,from/usr/local/php-8.1.0/include/php/Zend/zend_config.h:1,from/usr/local/php-8.1.0/include/php/Zend/zend_portability.h:43,from......
  • 在 Apache 虚拟机中, php-fpm 以指定用户身份运行 PHP
     用户和用户目录useraddsite1usermod-a-Gsite1www-datamkdir/var/www/site1chown-Rsite1:site1/var/www/site1chmod770/var/www/site1#限制其它用户查看site1数据 设置php-fpmcp/etc/php/7.4/fpm/pool.d/www.conf/etc/php/7.4/fpm/pool.d/fpm-......
  • PHP与C#混合用
    故事背景是这样的,有一套项目,服务器端是用C#写的,为了完成某种事情,它需要使用到一个组件,这个组件很小但很重要,很不巧的是,这个这个组件是用PHP语言写的,如果为了使用这个组件而专门搭建一个PHP的环境显得有点高射炮打蚊子(况且还有其他不可预见的阻力)。或许有读者会提出“抗议”:不是PHP......
  • PowerShell 实现删除指定路径X天前文件功能并添加定时JOB实例
    公司的POA服务器的E盘隔三差五就爆满,原因是数据库备份文件越来越大,现在已经大到需要高频清理的地步了十一前出现的这个问题,当时为了不专门在假期里某天特地去清理磁盘,想着一定要搞个定时JOB实现自动清理最后选用了PowerShell脚本实现新建一个txt文件,打开编辑内容如下:#设置要......
  • php8:开启opcache+jit和不开启opache+jit有多大区别?
    一,测试环境:PHP8.3.9LaravelFramework11.15.0接口没访问数据,只是从redis取数据二,不开启opache+jit访问10次数据用时148147129128129124128127236129三,开启opache+jit后访问10次数据用时36243123322232644021区别还是很大的,说明最起码对于laravel......
  • php8: Throwable和Exception的区别
    一,php8中的一些错误如致命错误用Exception捕捉不到例子:<?phptry{echo"try";$a=100/0;var_dump($a);}catch(\Exception$e){echo"catch";$result=$e->getMessage();......
  • php模板网站怎么修改?网站模板二次修改程序?
    要对PHP模板网站进行二次开发或修改,你可以遵循以下步骤来进行:熟悉模板结构首先,详细阅读模板提供的文档。理解模板文件夹结构,通常包括HTML/CSS/JS文件以及PHP后端逻辑。备份现有代码在任何修改之前,确保完整备份当前网站的所有文件和数据库。这一步对于防止意外丢失数......
  • 网站phpmyadmin修改密码?
    要在phpMyAdmin中修改数据库用户的密码,你可以按照以下步骤操作:登录phpMyAdmin:打开你的Web浏览器并访问phpMyAdmin的URL地址。输入用户名和密码进行登录。选择数据库服务器:登录后,在左侧菜单栏中选择一个数据库服务器(通常是左侧列表中的MySQL或具体的服务器名称)。进......