PHP:浏览器处理功能

PHP:设置 HTTP 头信息

在 PHP 中,可以使用header()函数来设置 HTTP 头信息。以下是一些常见的用法:

一、设置内容类型

1. 例如设置为 HTML 格式:

header('Content-Type: text/html; charset=utf-8');

这将告诉浏览器返回的内容是 HTML 格式,并且使用 UTF-8 编码。

2. 设置为 JSON 格式:

header('Content-Type: application/json');

用于返回 JSON 数据时设置头信息。

二、设置缓存控制

1. 禁止缓存:

header('Cache-Control: no-cache, no-store, must-revalidate');

header('Pragma: no-cache');

header('Expires: 0');

这组头信息可以确保浏览器不会缓存页面内容。

2. 设置缓存时间:

$expires = time() + 3600; // 设置缓存时间为 1 小时

header('Cache-Control: public');

header('Expires: '. gmdate('D, d M Y H:i:s', $expires).'GMT');

三、设置重定向

1. 永久重定向(301):

header('HTTP/1.1 301 Moved Permanently');

header('Location: http://new-url.com');

2. 临时重定向(302):

header('HTTP/1.1 302 Found');

header('Location: http://temporary-url.com');

四、设置访问控制允许源(CORS)

1. 允许特定源访问:

header('Access-Control-Allow-Origin: http://allowed-domain.com');

2. 允许所有源访问:

header('Access-Control-Allow-Origin: *');

五、设置下载文件头信息

强制下载文件:

$fileName = 'example.pdf';

header('Content-Type: application/pdf');

header('Content-Disposition: attachment; filename="'.$fileName.'"');

这将使浏览器下载名为example.pdf的文件。

在设置 HTTP 头信息时,要确保在输出任何内容之前调用header()函数,否则可能会导致错误。同时,不同的头信息设置可以根据具体的需求进行组合和调整。

PHP:设置 Cookie 和 Session 与浏览器交互

在 PHP 中,Cookie 和 Session 是用于在服务器和浏览器之间存储和传递数据的重要机制,它们可以实现与浏览器的交互。

一、设置 Cookie

1. 基本用法:

使用setcookie()函数来设置 Cookie。这个函数接受多个参数,包括 Cookie 的名称、值、过期时间、路径、域名等。

setcookie('username', 'john', time() + 3600);

这个例子设置了一个名为username的 Cookie,值为john,过期时间为当前时间加上 3600 秒(1 小时)。

2. 设置更多参数:

可以设置 Cookie 的路径和域名,以控制它在哪些页面和子域中可用。

setcookie('user_id', '123', time() + 3600, '/', '.example.com');

这个 Cookie 将在example.com及其所有子域的所有路径下可用。

3. 读取 Cookie:

在后续的页面请求中,可以通过$_COOKIE超全局变量来读取 Cookie 的值。

if (isset($_COOKIE['username'])) {

$username = $_COOKIE['username'];

echo "Hello, $username!";

}

二、使用 Session

1. 启动 Session:

在使用 Session 之前,需要使用session_start()函数来启动 Session。这个函数必须在输出任何内容之前调用。

session_start();

2. 存储数据:

可以使用$_SESSION超全局变量来存储和读取 Session 数据。

$_SESSION['logged_in'] = true;

$_SESSION['user_id'] = 123;

3. 读取数据:

在其他页面中,可以读取 Session 数据来确定用户的状态或获取其他信息。

session_start();

if (isset($_SESSION['logged_in']) && $_SESSION['logged_in']) {

echo "Welcome, logged in user!";

} else {

echo "Please log in.";

}

4. 销毁 Session:

当用户退出或不再需要 Session 时,可以使用session_destroy()函数来销毁 Session。

session_start();

session_destroy();

Cookie 和 Session 各有优缺点,Cookie 可以在客户端存储一些小量的数据,但安全性较低。Session 数据存储在服务器端,相对更安全,但会占用服务器资源。根据具体的应用场景选择合适的方式来与浏览器进行交互。

PHP编程语言基础