PHP上模拟事件来响应Ajax

来源:互联网 发布:模拟人生4mac版下载 编辑:程序博客网 时间:2024/04/29 09:22

 这东西比较简单,直接来看代码吧。 require 'events.php';
//事件函数
function on_submit($text){
  //获取参数并输出给客户端
  die($text.' ← 这货没救了');
};
  

      在引用了events.php后,Ajax提交过来的操作就会被放入一个函数中处理,这样页面的逻辑就更清晰了。下面是测试用的前端代码,和上面的代码是放在同一个文件中的。<script src="jquery.js"></script>
<script>
//发送一个post请求到服务器
$.post("?submit",{
  text:"次碳酸钴"
},function(e){
  //输入返回的数据
  alert(e);
});
</script>

  下面就是events.php的代码,这才是重点。这个模拟事件最重要的就是从客户都提交过来的参数中取出需要的,上面的函数有$text这个参数,而$text的值就是客户都POST过来的$text这个参数。即使客户丢了一堆乱七八糟的参数过来,我们的事件也只取$text这个参数。//events.php
//获取事件函数
$f='on_'.$_SERVER['QUERY_STRING'];
//判断存在
if(function_exists($f)){
  //获取函数对象
  $s=new ReflectionFunction($f);
  //获取函数形参列表
  $s=$s->getParameters();
  //遍历,并从POST过来的数据中获取数据
  foreach($s as &$i)$i=$_POST[$i->name];
  //把数据放入函数中调用
  call_user_func_array($f,$s);
  //删除多余变量
  unset($s,$i);
};
unset($f);
  

     其实就是利用ReflectionFunction来获取函数的参数列表,根据参数列表传入需要的参数啦。其实也没啥亮点,只是今天想不到写啥了,就拿这个凑个数啦。如果对你们没有帮助可别骂我哦。

0 0
原创粉丝点击