日期和时间

date() 函数

date() 函数用于格式化日期和时间。

1
2
3
4
5
<?php
echo date("Y/m/d") . "<br>";
echo date("Y.m.d") . "<br>";
echo date("Y-m-d");
?>

输出结果

1
2
3
2026/04/08
2026.04.08
2026-04-08
format字符 描述 返回值例子
Y 年,四位数字 例如:1999 或 2003
y 年,两位数字 例如:99 或 03
m 月,两位数字 01-12
M 月,完整名称 January 到 December
d 月份中的第几天,有前导零的 2 位数字 01-31
j 月份中的第几天,没有前导零 1-31
D 星期几,缩写 Mon - Sun
l 星期几,完整名称 Monday - Sunday
H 小时,24小时制 00 - 23
h 小时,12小时制 00 - 12
i 分钟,两位数字 00 - 59
s 秒,两位数字 00 - 59

包含

include() 函数和 require() 函数

include() 函数和 require() 函数用于包含其他文件的内容

include 和 require 除了处理错误的方式不同之外,在其他方面都是相同的:

  • require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。
  • include 生成一个警告(E_WARNING),在错误发生后脚本会继续执行。
  • 尽量使用 require 向执行流引用关键文件。这有助于提高应用程序的安全性和完整性

使用方法

1
2
3
4
5
<?php
include "file.php";

require "file.php";
?>

把文件包含后,可以直接调用文件中的公共变量

文件处理

打开文件

1
2
3
<?php
$filehandle = fopen("filename.txt", "r");
?>

文件可以通过以下模式打开

模式 描述
r 只读,在文件开头读开始
r+ 读写,在文件开头读开始
w 只写,打开并清空文件的内容;如果文件不存在,则创建新文件。
w+ 读写,打开并清空文件的内容;如果文件不存在,则创建新文件。
a 追加。打开并向文件末尾进行写内容,如果文件不存在,则创建新文件。
a+ 读/追加,打开并向文件末尾进行写内容,保持文件指针在文件末尾,保持文件内容
x 只写,创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
x+ 读写,创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

注意:如果 fopen() 函数无法打开指定文件,则返回 0 (false)。

关闭文件

1
2
3
<?php
fclose($filehandle);
?>

检测文件末尾

feof() 函数用于检测文件是否到达末尾。

读取文件内容

fgets() 函数用于读取文件的一行。

1
2
3
4
5
6
# 读取文件的最后一行
<?php
if (!feof($filehandle)) {
echo fgets($filehandle);
}
?>

运用两函数逐行读取文件内容

1
2
3
4
5
6
7
8
9
?php
$file = fopen("welcome.txt", "r") or exit("无法打开文件!");
// 读取文件每一行,直到文件结尾
while(!feof($file))
{
echo fgets($file). "<br>";
}
fclose($file);
?>

cookie

cookie是一种小文本文件,用于存储用户信息,例如用户名、密码等。当同一个用户再次访问网站时,网站可以使用 cookie来识别用户。

setcookie() 函数用于设置 cookie。

语法

1
2
3
<?php
setcookie("cookie名", "cookie值", time());
?>

实例

1
2
3
<?php
setcookie("user", "lah", time() + (60 * 5));
?>
1
2
3
4
5
6
7
<?php
// 输出 cookie 值
echo $_COOKIE["user"];

// 查看所有 cookie
print_r($_COOKIE);
?>
1
2
3
4
5
6
<?php
if (isset($_COOKIE["user"]))
echo "欢迎 " . $_COOKIE["user"] . "!<br>";
else
echo "普通访客!<br>";
?>

把时间设置为过去的时间(负数)

1
2
3
<?php
setcookie("user", "", time() - (60 * 5));
?>