分成二部分看
function make_safe($variable)
{$variable = addslashes(trim($variable));
return $variable;}
是一个函数 作用是将$variable中的单引号之类的特殊符号加上'\'进行转义,是简单的安全过滤
$y0=make_safe($_REQUEST["y0"]);
$x=make_safe($_REQUEST["x"]);
$y=make_safe($_REQUEST["y"]);
if ($y0 != "")
{switch($y0){case "+":$daan =$y+$x;
break;case "-":$daan =$y-$x;
break;case "*":$daan =$y*$x;
break;case "/":$daan =$y/$x;
break;default:}
echo $y.$y0.$x."=".$daan;}
$lev=0;循环中第一次运行的代码,以后不再运行
","."的意思相当于JAVASCRIPT中的+或者VB中的.这条语句的意思也就是说,把空格追加到变量$level_nbsp后面
就是写出你朋友的数量和各个名字,你运行一次就知道了.
你的朋友是:"Robert Barwell", "Mike Parry", "Jeremy Beacock"
数量是friendNames.Length
整个代码是用来过滤恶意注入的.
if(isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) exit('Request Denied');
这一行是发现有恶意的全局变量提交上来就拦截.
@set_magic_quotes_runtime(0);
$MQG = get_magic_quotes_gpc();
这里是读取系统环境变量
foreach(array('_POST', '_GET', '_COOKIE') as $__R) {
这个是新建一个数组,三个值就在上面了.
if(isset($$__R)) {
foreach($$__R as $__k = $__v) {
if(isset($$__k) $$__k == $__v) unset($$__k);
}
估计难的就是这里吧..$__R 在第一次循环时,值是 _POST 前面再加一个 $ 即 $_POST
如果 $_POST 已经赋值,这个有点多余,因为这是内置变量,一定存在的.
之后把 $$__R 分别看成 $_POST $_GET 啥的即可,拆分 $_POST 每个值到 $__V 里,索引存到 $__K 里.如果有 $_POST['a'] = 'b'; 那 $__K 就是 a ,$__V 就是 b.下面是同样的意思.
如果 $($__K) 即 $a 已经存在,并且这个变量的值和现在 POST 过来的值相同,就把原来的变量注销掉.只保留 POST 过来的那个变量.
也就是说,如果代码原来有 $a='b' 现在又提交了一个 $_POST['a']='b'; 现在就删掉原来的 $a 保留 POST 的那个.这是用于别人已经成功注入的情况下,可以把他们已经注入的变量干掉.
if(!$MQG)$$__R = daddslashes($$__R);
上面这个是检查环境变量,魔法引号是否开启,如果没有开启的话,过滤整个 $_POST(GET COOKIE)
$$__R = strip_sql($$__R);
$$__R = dsafe($$__R);
上面这两个是自定义过滤,看样子是过滤 SQL 注入啥的.原理同上.
php
if($item['q_content']){
//检查数组变量$item['q_content']是否存在
? ? ? ? $item_q_content = unserialize($item['q_content']);//用 unserialize() 还原已经序列化的对象
? ? ? ? $keysvalue = $new_array = array();//声明数组变量
? ? ? ? foreach($item_q_content as $k=$v){
//将$item_q_content循环,由此可以断定它是个数组
? ? ? ? ? ? $keysvalue[$k] = $v['time'];//将 $item_q_content中的time键值复制到新变量$keysvalue中去(结合下面的代码,这赋值一点意义都没有,你要的只是键值而已)
? ? ? ? ? ? $h=date("H",$v['time']);//取得小时
? ? ? ? ? ? $i=date("i",$v['time']);//取得分钟
? ? ? ? ? ? $s=date("s",$v['time']);//取得秒
? ? ? ? ? ? list($timesss,$msss) = explode(".",$v['time']);//用.字符串分割$v['time']
? ? ? ? ? ? $item_q_content[$k]['timeadd'] = $h.$i.$s.$msss;//重新赋值$item_q_content,并建立一个多维数组
? ? ? ? arsort($keysvalue); ? ?//asort($keysvalue);正序
? ? ? ? reset($keysvalue);//将 array 的内部指针倒回到第一个单元
? ? ? ? foreach ($keysvalue as $k=$v){
//遍历$keysvalue,得到$k,也就是键值
? ? ? ? ? ? $new_array[$k] = $item_q_content[$k];//取得变量$item_q_content中键值的值,并且重新赋值给新变量$new_array
? ? ? ? }
? ? ? ? $item['q_content'] = $new_array;//赋值
? ? }
以上就是土嘎嘎小编为大家整理的麻烦帮解释下这段php代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!