PHP数组
$nbsp:空格
索引数组:key值默认
array(2,2,2,2,1)
遍历:echo $XXX[n]、常规for循环
关联数组:自己定义key值
array(“name” => content,“name” => content,“name” =>content)
遍历:
1、foreach($XXX as $key => $value)
{
echo $key."—".$value.;
*key值对应name、value值对应content
}
2、while($row = each($XXX))
{
list ($k,$v) = $row;
echo $k."……".$v.;
}
打印数组:print_r($XXX)、var_dump($XXX)
数组元素个数:echo count($XXX)
数组元素增加:$XXX[位置] = “ff”
删除:unset($XXX[索引值])
改:$XXX[索引值] = “cute”
查:可通过遍历和key值
数组函数
array_key_exists(“key值”,$XXX)【检查key值或索引是否存在】
in_array(“value值”,$XXX)【j检查元素是否在数组里】
array_keys($XXX)【key值对返回成索引数组】
列举一些【用手册查找测试】
array_change_key_case();
array_count_values();
array_fill();
array_filter();
array_values();
array_keys();
array_push();
array_pop();
array_shift();
array_unshift();
Sort(),rsort(),Usort(),asort();
ksort(),natsort(),natcasesort();
array_merge();
array_merge_recursive();
array_diff();
array_diff_assoc();
array_intersect_assoc();
array_flip();
array_unique();
array_reverse();
array_sum();
shuffle();
range();
array_rand();
PHP函数与超全局变量
function 函数名a(接收参数,可无参)
{
代码语句
}
调用: 函数名()
超全局变量:$GLOBALS:超全局数组,是二维数组
全局变量:可用$GLOBALS[“GLOBALS”][“X”]输出
$_SERVER:输出服务器信息和客户端信息
echo $_SERVER[“REMOTE_ADDR”]:输出远程的IP地址
echo $_SERVER[“HTTP_USER_AGENT”]:输出用户浏览器信息
$_GET:通过浏览器进行传参【表单或浏览器里常用】
$_POST:插件应用
$_REQUEST 是 $_GET 与 $_POST的结合
个人理解起来好难呀
<?php
function getAdd($a,$b)
{
return $a + $b;
}
if(empty($_GET))
{
echo "no get<br/>";
}
else
{
$x = $_GET["a"];
$y = $_GET["b"];
$c = getAdd($x,$y);
echo $c;
}
常量 :define(“常量名 一般大写”,value)
可用var_dump(defined(“name”))检验是否赋值
全局变量:在文件里,没有任何包含
局部变量:对于函数而言,在函数代码块里
【全局变量和局部变量可重名,两者是不影响的。可用传地址符“&”来联系全局变量和局部变量 】
global关键字 : 可以实现在函数中用全局变量
会话技术
$_COOKIE:保存在浏览器端的一个数据
setcookie(“name”,“value”,time()+YYY[过期时间设置])
setcookie:第一次设置cookie 当前页面无法取出
Cookie Editor插件:改变cookie值来欺骗浏览器
cookie 访问计数器:写一个例子计算当前页面的访问次数
<?php
$num = 0;
if(empty($_COOKIE["nino"]))
{
setcookie("nino",1);
echo "1";
}
else
{
$num = $_COOKIE["nino"];
$num++;
setcookie("nino",$num);
echo $num;
}
$_SESSION:保存在服务器server端,依靠cookie才能实现读取
session_start():必用函数
$_SESSION[“user”] = “admin”
session 清空:
1、session_destroy():清空当前的
2、$_SESSION = array():设置为空数组
登录测试例子
//t5
<!DOCTYPE html>
<html>
<head>
<meta charset ="utf-8">
<title>session登录测试</title>
</head>
<body>
<form action="t6.php" method="post">
用户名:<input type="text" name="sname"/><br/>
密码:<input type="password" name="spass"/><br/>
<input type ="submit" value="登录"/>
<form/>
</body>
</html>
//t6
<?php
header("Content-type:text/html;charset=utf-8");
session_start();
if(empty($_POST))
{
echo"无法登陆<br/>";
echo"<a href=' t5.php '>请登录</a>";
}
else
{
$name = $_POST["sname"];
$pass = $_POST["spass"]
if($name == "feng" && $pass == "920")
{
$_SESSION["name"] = "feng";
header("Location:t7.php");//跳转
}
else
{
echo "用户名或者密码错误<br/>";
echo "<a href=' t5.php '>请登录</a>";
}
}
//t7
<?php
header("Content-type:text/html;charset=utf-8");
session_start();
if(empty($_SESSION))
{
echo "无权登陆<br/>";
echo "<a href = 't5.php'>请登录</a>";
}
else
{
$name = $_SESSION["name"];
echo "欢迎".$name." 登录系统";
}
文件管理
关键字
require:require"文件名"【文件不存在时报错不执行】
include:include"文件名"【报错但要执行】
require_once【只执行文件中的一次】
include_once【只执行文件中的一次】
文件上传
使用包含文件上传必须带上enctype = "multipart/form-data"写在表单里
上传图片可得到:
array (size=1)
‘pic’ =>
array (size=5)
‘name’ => string ‘20200322220203.png’ (length=18)
‘type’ => string ‘image/png’ (length=9)
‘tmp_name’ => string ‘D:\ctf\WAMP\wamp\tmp\php7B2C.tmp’ (length=32)
‘error’ => int 0
‘size’ => int 35209
文件上传函数:move_uploaded_file
创建文件的函数:
is_dir:检查是否是目录
mkdir():创建目录
_DIR_:输出当前的绝对路径
dirname(_DIR_):输出上层路径
realpath("…"):一点代表当前目录,二点代表上级目录,…/…/上上级目录
opendir:打开目录
readdir:读出目录
closedir:关闭目录
unlink(“文件名”):删除文件
file_get_contents():从文件中读取内容
file_put_contents():从文件中写入内容
文件实例在第二次作业
文件管理系统:递归思想读出代码文档
<?php
header("Content-type:text/html;charset=utf-8");
function sDir($a,$b = 0)
{
$c = opendir($a);
while($d = readdir($c))
{
//如果目录为.和..就跳过
if(($d == '.') || ($d == '..'))
{
continue;
}
echo str_repeat(" ",$b),$d,'<br/>';
//如果目录里还有目录,继续往下读取目录
if(is_dir($a.'/'.$d))
{
sdir($a.'/'.$d,$b+1);
}
}
closedir($c);
}
sDir('..');
----------------------------------------------------------------------------------next还有next