木肃的博客

PHP文件包含、cookie、文件上传

一、文件包含

在 PHP 中,可以在服务器执行 PHP 文件之前在该文件中插入一个文件的内容。

includerequire 语句用于在执行流中插入写在其他文件中的有用的代码。

两者之间的区别在于:

include生成一个警告,在错误发生后依然会执行。

require生成一个致命错误,在错误发生时就会停止执行。

1
2
3
include 'head.php';  include会在PHP文件开始运行的时候包含

require 'tail.php'; require会在PHP文件运行到require关键字时包含

include_once和require_once表示只包含一次

1
2
3
include_once 'head.php';

require_once 'tail.php';

二、cookie和session

2.1cookie

cookie 常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

setcookie()函数用来设置cookie

注意:setcookie()函数必须位于<html>标签之前。

创建一个名为 “user” 的 cookie,并为它赋值 “runoob”。并规定了此 cookie 在一小时后过期:

1
2
3
<?php
setcookie("user", "runoob", time()+3600);
?>

2.1.1取回cookie值

$_COOKIE 变量用于取回 cookie 的值。

取回名为 “user” 的 cookie 的值,并把它显示在了页面上:

1
2
3
4
5
6
7
<?php
// 输出 cookie 值
echo $_COOKIE["user"];

// 查看所有 cookie
print_r($_COOKIE);
?>

2.1.2删除cookie

删除cookie很简单,只要将日期改为过去的时间点。

1
2
3
4
<?php
// 设置 cookie 过期时间为过去 1 小时
setcookie("user", "", time()-3600);
?>

2.2session

Session 变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。Session 变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的。

在把用户信息存储到 PHP session 中之前,首先必须启动会话。

注意:session_start() 函数必须位于<html> 标签之前:

1
2
3
4
5
6
7
<?php session_start(); ?>
<html>
<head></head>
<body>

</body>
</html>

2.2.1存储session

存储和取回 session 变量的方法是使用 PHP $_SESSION 变量:

1
2
3
4
5
6
7
8
9
10
<?php
session_start();
// 存储 session 数据
$_SESSION['views']=1;
?>

<?php
// 检索 session 数据
echo "检索". $_SESSION['views'];
?>

2.2.2删除session

删除session数据,可以使用 session_destroy() 函数。

session_destroy() 函数是彻底销毁 session

1
2
3
<?php
session_destroy();
?>

三、文件上传

PHP可以把文件上传到服务器中。

文件上传的HTML表单,代码会在查看页面时出现上传界面

1
2
3
4
<from>
<input type="file" name="file">
<input type="submit" value="提交">
</from>

在PHP中可以写上传文件的代码

在这里限制了只能上传jpg和png格式的文件如果上传的文件与规定上传的文件格式不匹配,是不允许上传的。

在上传后,文件将会存储在用户指定的文件夹

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$ext_arr = array('jpg', 'png');
if (isset($_FILES['file'])){
if ($_FILES['file'] ['error'] == 0 ){
if (in_array($filename, $ext_arr) === false) {
echo "上传文件扩展名是不允许的扩展名。";
}else {

$ok = move_uploaded_file($_FILES['file'] ['tmp_name'], './picture/' . $_FILES['file'] ['name']);
if ($ok) {
echo '文件保存在: ./picture/' . $_FILES['file'] ['tmp_name'];
} else {
echo '文件上传失败';
}
}
?>

在文件夹中的存储方式是:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "错误:" . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];
}
?>