动态资源
学习如何创建并提供动态资源。
静态资源及其局限性
之前我们学习了如何提供静态资源,特别是 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,你应该能看到:
你还会看到另一个数字,因为我们使用了 random_int() 函数 来生成随机数。
刷新页面后,你会发现每次显示的数字都不一样。
请注意,http://APPLINK 只是 localhost 的替代写法。你无需实际跳转或打开任何网址。我们已经为你配置好了环境。
运行下面的例子,点击 运行 按钮下方提供的链接,查看其工作效果。
No configuration found for ID: d653f0a4f926dae50998394b86f0198c4492ad0488ff599bfff8bacbfb7f14e1
顺便提一下,如果浏览器提示“无法连接”,说明你的 PHP 服务器尚未启动。
此时,请打开 终端,进入项目目录,运行以下命令:
php -S localhost:8000 -t public/在我们的平台上你无需担心这个问题,因为所有配置都已提前完成。
请求处理
令人惊讶的是,浏览器并没有显示 `你的幸运数字是:`。 这是因为 PHP 服务器以特殊方式处理了这个请求。 当请求的文件是一个 `.php` 脚本时,服务器会执行该脚本,并用其生成的输出作为响应返回给浏览器。 因此,在浏览器中,你看到的不再是 PHP 代码本身,而是脚本运行后的实际输出结果。
