引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足;对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以我就想到了通过写博客(课程笔记)的形式去学习它,虽然写博客会让我多花几倍的时间去学习它,但是当我完成一篇博客所获得的成就感和你们对于我的认同感,让我很满足,能够鼓励我一天天的坚持下去,也希望和我一起学习本期视频的"同道"们也能给一直坚持下去。我们大家一起加油。由于作者本身也是网络信息安全小白,大部分知识点都是初次接触,出现对其理解不深入,不完整,甚至也会出现错误有问题的地方,希望大家谅解、留言提出指正,同时也欢迎大家来找我一起交流学习!!!
往期博客:
[网络安全学习篇42]:靶场环境搭建(ubuntu系统安装优化及vulhub安装)
[网络安全学习篇43]:PHP基础+变量 运算符 流程控制语句
[网络安全学习篇45]:PHP 数组 (本篇)
下期博文:
[网络安全学习篇46]:PHP COOKIE 和 SESSION
目录
数组
变量类型
复合数据类型
键值对
键名 键值
key value
数组中的元素
除了对象,可以存放任意类型的数据
数组的分类
键值对 整型的正数 索引数组
键值对 具有语义的字符串 关联数组
数组的创建
第一种创建数组的方式
$stu[]
1、在未指定键名的情况下,给数组赋值,键名从零开始计数,依次增大
2、可以手动给键名
第二种创建数组的方法
array()
数组元素的访问
1、读取
2、添加
3、修改
数组的遍历
for 循环 只适用有规律的索引数组
foreach 语言结构
foreach($stu as $key => $value){
}
二维数组
多维数组
预定于超全局数组变量
PHP定义好的,可以直接使用
函数内部或者外部都能使用
$GLOBALS
引用全局作用域中可以使用的全局变量
$_SERVER
一个包含诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
$_GET
通过URL参数传递给当前脚本的变量的数组
$_POST
当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本。
$_FILES
通过HTTP POST方式上传到当前脚本的项目的数组
$_COOKIE
通过HTTP Cookies 的方式传递给当前脚本的变量的数组
$_SESSION
当前脚本可用SESSION变量的数组
$_REQUEST
默认情况下包含了 $_GET, $_POST 和 $_COOKIE 的数组
$_ENV
通过环境方式传递给当前脚本的变量的数组
$_GET
接受来自的URL的传递参数
http://192.168.1.132/PHP/array/get.php?name=GGG
http://192.168.1.132/PHP/array/get.php?name=GGG&passwd=123456
参数的名 键名
参数的值 键值
$_POST
当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本。
HTTP请求报文的请求正文中
$_FILES
文件上传的相关信息
源码
1.php
<?php
/* $name = "GGG";
$age = 24;
$sex = true;
$grade = 78.9;
*/
/* $stu[] = "GGG";
$stu[] = 24;
$stu[] = true;
$stu[] = 78.9;
*/
/* $stu[10] = "GGG";
$stu[20] = 24;
$stu[30] = true;
$stu[] = 78.9; */
$stu['name'] = "GGG";
$stu['age'] = 24;
$stu['sex'] = true;
$stu['grade'] = 78.9;
$stu[]="Content";
//echo $stu;
echo "<pre>";
//print_r($stu);
var_dump($stu);
?>
2.php
<pre>
<?php
$stu1 = array("GGG",24,true,78.9);
//print_r($stu1);
$stu2 = array(
'name' => "MDM",
'age' => "23",
'sex' => false,
'grade' => 99.9,
'Something!'
);
//print_r($stu2);
echo $stu1[0];
$stu1[3]=100;
print_r($stu1);
?>
3.php
<?php
$stu1 = array("GGG",24,true,78.9);
for($i=0;$i<count($stu1);$i++){
echo $stu1[$i]."<br />";
}
$stu2 = array(
'name' => "MDM",
'age' => "23",
'sex' => false,
'grade' => 99.9,
'Something!'
);
foreach($stu2 as $key => $value){
echo $key."=>".$value."<br />";
}
?>
4.php(创建表格)
<html>
<title>学生基本信息表</title>
<meta charset="utf-8">
</html>
<?php
$students=array(
1901 => array(
'name' => "GGG",
'age' => 24,
'esx' => true,
'grade' => 79.9
),
1902 => array("MDM",23,false,61),
1903 => array("XL",25,true,59.9)
);
echo "<table border=3>";
echo "<tr>
<td>姓名</td>
<td>年龄</td>
<td>性别</td>
<td>成绩</td>
</tr>";
foreach($students as $v){
echo "<tr>";
foreach($v as $vv){
if($vv === true){
$vv = "男";
}
if($vv === false){
$vv = "女";
}
echo "<td>".$vv."</td>";
}
echo "</tr>";
}
echo "</table>";
?>
$_GET
get.php
<meta charset="utf-8">
<?php
//var_dump($_GET);
if(isset($_GET['userSubmit'])){
if(isset($_GET['userName']) && $_GET['userName']=="GGG"
&& isset($_GET['userPass']) && $_GET['userPass']=="123456"
){
echo "Welcome,".$_GET['userName'];
}else{
echo "用户名或密码错误<a href='./login.html'>请通过重新登录</a>";
}
}else{
echo "Error!<a href='./login.html'>请通过表单登录</a>";
}
?>
login.html
<html>
<meta charset="utf-8">
<h1>用户登录</h1>
<form
action="./get.php"
method="get"
target="_blank"
>
用户名:<input type="text" name="userName"><br />
密码:<input type="password" name="userPass"><br />
<input type="submit" name="userSubmit" value="登录"">
</html>
$_POST
post.ph
<meta charset="utf-8">
<?php
//var_dump($_POST);
if(isset($_POST['userSubmit'])){
if(isset($_POST['userName']) && $_POST['userName']=="GGG"
&& isset($_POST['userPass']) && $_POST['userPass']=="123456"
){
echo "Welcome,".$_POST['userName'];
}else{
echo "用户名或密码错误<a href='./login.html'>请通过重新登录</a>";
}
}else{
echo "Error!<a href='./login.html'>请通过表单登录</a>";
}
?>
login.html
<html>
<meta charset="utf-8">
<h1>用户登录</h1>
<form
action="./post.php"
method="post"
target="_blank"
>
用户名:<input type="text" name="userName"><br />
密码:<input type="password" name="userPass"><br />
<input type="submit" name="userSubmit" value="登录"">
</html>
$_POST上传文件
对php.ini配置文件做修改
使上传文件后的缓存位置更改为C:\phpStudy\tmp\tmp
重启phpStudy(使配置文件生效)
upfile.php
<html>
<meta charset="utf-8">
<h1>
文件上传测试
</h1>
<form
action=""
method="post"
enctype="multipart/form-data"
>
<input type="file" name="userUpFile">
<input type="submit" name="userSubmit" value="上传">
</form>
</html>
<hr />
<?php
echo "<pre>";
if(isset($_POST['userSubmit'])){
var_dump($_FILES);
$tmp_path=$_FILES['userUpFile']['tmp_name'];
$path=__DIR__."\\".$_FILES['userUpFile']['name'];//__DIR__获取当前php脚本所在目录
//echo $path;
if(move_uploaded_file($tmp_path,$path)){
//move_uploaded_file(参数1,参数2);将上传上来的缓存文件的目录(参数1)保存到参数2目录下
echo "upfile success!";
echo "<br />".$_FILES['userUpFile']['name'];
}else{
echo "upfile failed";
}
}
?>
到up目录下查看保存的文件
参考文献: