为什么使用index.php而不是index.html作为入口点(主页)?

时间:2014-05-07 15:39:55

标签: php html web-site-project file-structure

我正在用PHP开发代码。我正在创建一个网站来演示使用PHP代码的脚本。

有人可以解释如何构建这个项目。

我有许多碎片(文件),但不能正确凝固它们。

启动index.php显示“未找到服务器”。 启动index.html会显示正确的元素,这些元素在点击时会正确导航到其他页面。

我的问题是,当主页条目为index.php且主页条目为index.html时,有人要求逻辑向我解释?

当我从任何网站查看来源时,始终只有html代码可见。

3 个答案:

答案 0 :(得分:3)

使用.php文件告诉您的Web服务器使用PHP解释器运行PHP代码。如果您使用.html,它不会通过解释器运行您的代码。

您在查看源代码时只看到HTML代码的原因是,PHP用于决定向用户显示的内容,您使用HTML来决定如何向用户显示该信息。

服务器将HTML提供给浏览器,因此浏览器知道如何显示内容。浏览器不关心任何PHP,因为PHP在服务器(服务器端)上运行。 HTML部署在浏览器(客户端)中。

你当然可以隐藏.php扩展名,但是如果你不明白PHP实际上是什么,我觉得这超出了答案的范围。

编辑:我假设你使用Windows?如果是这样,你需要安装某种WAMP堆栈(Windows,Apache,Mysql,PHP)。 Google就是其中之一。这将安装运行PHP代码所需的软件。

答案 1 :(得分:3)

我认为混淆来自PHP和HTML之间的区别。

PHP是一种服务器端语言。这意味着在加载HTML页面之前解析PHP。 PHP不需要提供HTML,但它当然可以。

如果你有一个PHP脚本,比如index.php,你就这样做了:

<?php
echo "Hello, World!";
?>

您实际在做的是告诉Apache在浏览器通过HTTP / HTTPS发起请求时使用PHP的解析器来执行此脚本。

步骤:

  1. 客户端(浏览器)调用index.php
  2. 服务器(主机)解析index.php
  3. 服务器(主机)返回任何HTML(回显吐出任何内容,因此Hello World!是HTML。
  4. 客户端(浏览器)接收HTML。
  5. 输出(源代码客户端由服务器提供):

    Hello World!
    

    这意味着您对PHP文件所做的每个请求都会在您看到浏览器之前完成这些过程。

    这就是为什么如果你创建一个巨大的循环,网站加载需要很长时间。服务器还没有准备好提供HTML,因为它正在进行计算。

    Apache配置为读取PHP时,通常会读取.php个文件。但是,如果您愿意,可以破解Apache让PHP解析任何文件扩展名,包括.html.xml,甚至.jpg

答案 2 :(得分:2)

这取决于网络服务器的配置方式。例如,apache使用dir_module并将一个接一个地在httpd.conf中查找定义为DirectoryIndex的所有文件。

示例httpd.conf(Snippet)

<IfModule dir_module>
    DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
                   default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
                   home.php home.pl home.cgi home.asp home.shtml home.html home.htm
</IfModule>

https://httpd.apache.org/docs/current/mod/mod_dir.html

编辑:我想我错过了解释这个问题?! OO

PHP是服务器端,而HTML将在客户端(您的浏览器)呈现。因此,您将永远无法看到其他PHP代码,这有很多原因。