我相信混乱来自 PHP 和 HTML 之间的差异。
PHP 是一种服务器端语言。这意味着在加载 HTML 页面之前解析 PHP。PHP 不需要提供 HTML,但它当然可以。
如果你有一个 PHP 脚本,比如 index.php,你可以这样做:
<?php
echo "Hello, World!";
?>
当浏览器通过 HTTP/HTTPS 发起请求时,您实际上正在做的是告诉 Apache 使用 PHP 的解析器来执行此脚本。
步骤如下:
- 客户端(浏览器)调用
index.php
。
- 服务器(主机)解析
index.php
.
- 服务器(主机)返回任何 HTML(echo 吐出任何存在的
Hello World!
内容,HTML 也是如此。
- 客户端(浏览器)接收 HTML。
输出(源代码客户端由服务器给出):
Hello World!
这意味着您对 PHP 文件的每个请求在您看到浏览器之前都会经过这些过程。
这就是为什么如果您创建一个巨大的循环,网站需要很长时间才能加载。服务器尚未准备好提供 HTML,因为它正在进行计算。
Apache 在配置为读取 PHP 时,通常会读取.php
文件。但是,您可以破解 Apache 让 PHP 解析任何文件扩展名,包括.html
, .xml
,或者即使.jpg
您想要。