[网络安全学习篇45]:PHP 数组

引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足;对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以我就想到了通过写博客(课程笔记)的形式去学习它,虽然写博客会让我多花几倍的时间去学习它,但是当我完成一篇博客所获得的成就感和你们对于我的认同感,让我很满足,能够鼓励我一天天的坚持下去,也希望和我一起学习本期视频的"同道"们也能给一直坚持下去。我们大家一起加油。由于作者本身也是网络信息安全小白,大部分知识点都是初次接触,出现对其理解不深入,不完整,甚至也会出现错误有问题的地方,希望大家谅解、留言提出指正,同时也欢迎大家来找我一起交流学习!!!

往期博客:

[网络安全学习篇38]:基础环境搭建

[网络安全学习篇39]:HTML标签基础 常用的标签 表格

[网络安全学习篇40]:HTML表单 和 iframe

[网络安全学习篇41]:HTMLCSS 

[网络安全学习篇42]:靶场环境搭建(ubuntu系统安装优化及vulhub安装)

[网络安全学习篇43]:PHP基础+变量 运算符 流程控制语句

[网路安全学习篇44]:PHP 函数

[网络安全学习篇45]:PHP 数组 (本篇)

下期博文:

[网络安全学习篇46]:PHP COOKIE 和 SESSION

目录

 

数组

键值对

数组中的元素

数组的分类

数组的创建

数组元素的访问

数组的遍历

预定于超全局数组变量

源码

1.php

2.php

3.php

4.php(创建表格)

$_GET

$_POST

$_POST上传文件


数组

变量类型

复合数据类型

键值对

   键名 键值

   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-urlencodedmultipart/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-urlencodedmultipart/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目录下查看保存的文件


 参考文献:

千峰网络信息安全开源课程

原创文章 76 获赞 48 访问量 9564

猜你喜欢

转载自blog.csdn.net/weixin_43252204/article/details/105664647