Logo
Section 1 / 7

动态资源

学习如何创建并提供动态资源。

导入

动态资源

学习如何创建并提供动态资源。

静态资源及其局限性

之前我们学习了如何提供静态资源,特别是 index.html 和 favicon.ico。
浏览器可以处理这些内容:它可以显示一个 HTML 页面,并将 favicon.ico 用作浏览器标签页中的视觉图标。

然而,如果我们的应用只能向浏览器返回 .html 文件和图片,就永远无法构建真正的网络应用程序。
一个 .html 文件无法实现以下功能:

  • 无法处理用户通过表单输入的数据。
  • 无法连接数据库并生成可用商品的列表。
  • 无法记住“是我”并说出“嘿,Matthias,欢迎回来!”这样的个性化问候。

这是因为 .html 文件是静态资源。当浏览器第二次请求该文件时,得到的内容与第一次完全相同。

创建动态资源

现在我们将创建动态资源。
当浏览器请求一个动态资源时,它在第二次请求同一资源时可能会收到不同的响应。

我们通过创建一个名为 random.php 的新 PHP 文件来实现这一点,并将其放入 public/ 目录中。
将以下代码复制并粘贴到 random.php 文件中:

1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <title>你的幸运数字</title> 6</head> 7 8<body> 9 <h1>你的幸运数字是:<?php echo random_int(1, 10); ?></h1> 10</body> 11</html>

让我们尝试运行这个新的 random.php 脚本。

运行 PHP 脚本

由于我们已将文件放在 public/ 目录中,random.php 处于文档根目录下,因此可以通过浏览器访问。
打开 http://APPLINK/random.php,你应该能看到:

...
PHP脚本输出

你还会看到另一个数字,因为我们使用了 random_int() 函数 来生成随机数。
刷新页面后,你会发现每次显示的数字都不一样。

请注意,http://APPLINK 只是 localhost 的替代写法。你无需实际跳转或打开任何网址。我们已经为你配置好了环境。
运行下面的例子,点击 运行 按钮下方提供的链接,查看其工作效果。

No configuration found for ID: d653f0a4f926dae50998394b86f0198c4492ad0488ff599bfff8bacbfb7f14e1

顺便提一下,如果浏览器提示“无法连接”,说明你的 PHP 服务器尚未启动。
此时,请打开 终端,进入项目目录,运行以下命令:
php -S localhost:8000 -t public/

在我们的平台上你无需担心这个问题,因为所有配置都已提前完成。

请求处理

令人惊讶的是,浏览器并没有显示 `你的幸运数字是:`。 这是因为 PHP 服务器以特殊方式处理了这个请求。 当请求的文件是一个 `.php` 脚本时,服务器会执行该脚本,并用其生成的输出作为响应返回给浏览器。 因此,在浏览器中,你看到的不再是 PHP 代码本身,而是脚本运行后的实际输出结果。

可选图片描述
可选图片描述

提供资源

响应:状态、头信息和正文