您的位置:

麻烦帮解释下这段php代码(php问答)

本文目录一览:

帮我解释一下这段PHP的代码,新人不太明白

分成二部分看

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;}

这是一个简单的计算器,y0应该是运行符,前台应该有三个输入框 name 分别是 y0,x,y,提交后传到这个php文件中,最后输出类似与 1+1=2 ,2-1=1 的样式

帮我解释下这段PHP代码的意思

$lev=0;循环中第一次运行的代码,以后不再运行

如果$lev$level*2-1执行代码部分,$level_nbsp.="

",“.”的意思相当于JAVASCRIPT中的+或者VB中的。这条语句的意思也就是说,把空格追加到变量$level_nbsp后面

执行完毕以后再执行$lev++,++的意思就是$lev自身加1,然后再回到$lev$level*2-1,知道条件不成立为止

麻烦帮解释下这段PHP代码 是什么意思 谢谢!

就是写出你朋友的数量和各个名字,你运行一次就知道了。

你的朋友是:"Robert Barwell", "Mike Parry", "Jeremy Beacock"

数量是friendNames.Length

这段php代码的意思?

整个代码是用来过滤恶意注入的。

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代码谢谢!

?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;//赋值

      }