漫漫安全路

No.2 php入门(二)



php判断和循环

php的判断和循环和C/C++用法基本一致。不过多赘述


php数组

1、函数count(+数组)计算数组元素数量,

2、php中关联数组是指使用分配给数组指定的键的数组。在php中用关联数组替代哈希表的实现,更易实现其查找。

3、php数组默认为关联数组,普通数组必须经过严格的定义(必须连续且按顺序进行赋值)

$arr = array();
$arr[0] = 'a';
$arr[1] = 'b';
$arr[2] = 'c';

4、关联数组的遍历:

在关联数组中,使用foreach函数循环遍历关联数组,foreach($array as $x=>$x_value){  }

5、php数组的排序

(1)算法排序:冒泡、选择、快速

(2)函数排序(sort系列函数),详见Array手册(排序函数会生成一个新的排过序的数组取代之前的数组,可直接访问)   来自菜鸟教程的PHP Array手册https://www.runoob.com/php/php-ref-array.html


php超级全局变量

有几个常用的超级全局变量,我只对其中几个做一些重点批注

1、$_SERVER['  '] 本质上是一个包含了web服务器的各种信息的数组,一般由web服务器直接生成,可以使用访问相关数组的方式直接访问。可以查询到诸如服务器ip、浏览器内核等信息,可以利用该函数迅速判断访问请求并即时截断敏感用户

2、$_GET[' 变量名 '] 收集表单数据,在html中表单中需要指定属性 method="get",可以将前端页面传到后端页面,get型和post型传值的区别是get型是明文传值,post型是不显示明文传值同样需要指定属性 method="post",php端接受$_POST[' 变量名 '] 

3、$GLOBALS[' $变量 '] 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。能使一个变量在一个PHP脚本的全部作用域中都可以访问


php重要的函数

在php中,提供了超过 1000 个内建的函数。详情请见php函数手册https://www.php.net/manual/zh/funcref.php

以下例举几个常见函数

1、phpinfo()  测试网站能否执行php,即为运行函数过程并解析,能显示php所有相关信息,通常用来debug,在网络安全领域,一个网站的phpinfo被人读取到是比较危险的,有数据泄露的风险

2、eval(" 可计算的两个变量 ") 用来执行一个字符串表达式并返回表达式的值

3、system(" 系统命令 ")  用来执行系统命令,高危函数,谨慎使用,


php魔术常量

随着在php代码中位置的不同而改变的常量,在

1、_LINE_  显示此时位于代码段第几行

2、_FILE_  文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。

3、_CLASS_   返回该类被定义时的名字

类似的魔术常量还有5个,此处不一一例举了。


总结

学习了这么久,让我们用简单的条件语句写一个猜大小的小游戏吧。

需求:生成一个随机数,我们在前端界面猜测该数的大小,通过简单的if语句确定其范围,最后就能猜中啦。

<?php
$num=$_GET["num1"];  
$rand=$_GET["rand"];
if ($rand==null) //清空上面的内容重新开始吧
{
    $rand=rand(10,99); 
}
//判断开始

 if($num==null){
     $a = null;
 }elseif($num>$rand){
     $a = "你输入的值太大了";
 }elseif($num<$rand){
     $a = "你输入的值太小了";
 }else{
     $a = '<script>alert("恭喜你,猜对了");</script>';
 }
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
<form action="" method="get">
        <input type="password"  name="rand" value=<?php echo $rand;?>>   <!--从后端生成一个随机数传送到前端以密文的形式输出显示-->
        <h2>清空上面的内容,即可重新开始游戏</h2>
        </br>

        <h1>猜猜我的数字是多少,范围10-99</h1>
        猜数字<input type="number" name="num1" value=<?php echo $num;?>>  <!--value作用,保持标签内的值始终不被刷新-->
        <input type="submit" value="计算">
        <?php echo $a;?>
        </br>
    </form>
</body>
</html>

来看看结果吧 

 让我们用简单的for循环对我们刚刚写的猜数字游戏进行一个爆破实验吧

<?php
$rand=$_GET["rand"];
if ($rand==null){
    $rand=rand(10,99); 
}
//for循环爆破
for ($num=0;$num<=$rand;$num++){
     echo "正在爆破".$num;
     $a="爆破成功,结果为".$num;
 }
 $num=0;
 while ($num<=$rand){
     echo "正在爆破".$num;
     $a="爆破成功,结果为".$num;
     $num++;
 }
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
<form action="" method="get">
        <input type="password"  name="rand" value=<?php echo $rand;?>>
        <h2>清空上面的内容,即可重新开始游戏</h2>
        </br>

        <h1>猜猜我的数字是多少,范围10-99</h1>
        <input type="submit" value="点击开始自动爆破">
        <?php echo $a;?>
        </br>
    </form>
</body>
</html>

来看看结果吧

 刚刚测试完才发现犯了一个很傻的问题,那就是我在生成随机数的时候使用的表单传值方式不妥,导致其实我生成的随机数是可以直接看到的,让我们回顾全文,看看该怎么改吧......算了我懒得改了,留待有缘人帮我改吧。

请大家csdn关注加载中喵,持续为您带来精彩内容,谢谢喵!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值