【问题标题】:when to use index.php instead of index.html何时使用 index.php 而不是 index.html
【发布时间】:2012-12-21 22:45:51
【问题描述】:

我对 php 比较陌生。有一件非常基本的事情一直困扰着我。我知道 php 用于使网站动态化。我还知道 php 是可用于制作动态网站的众多服务器端脚本语言之一。

但是,我不明白什么时候需要使用 index.php 页面。例如,如果我的索引页面上只有一个简单的登录页面,它也很可能只是一个简单的 html 页面。正确的?那我为什么要让它 index.php 而不是 index.html 呢?

一个示例情况的例子会很棒。

【问题讨论】:

  • 你想多了。这没有严格的规定。如果页面只包含 html,您可以使用其中任何一个,因为在功能上,它不会有任何区别。

标签: php web-applications web web-application-project web-application-design


【解决方案1】:

当您希望在文件中执行 php 代码时,您必须选择 PHP 扩展名 (.php)。 PHP 代码是开始 <?php<? 和结束 ?> 标记之间的代码。

当不应执行任何 PHP 代码时,您可以使用 .html 扩展名。

通常在使用 .php 扩展名时,您会告诉 Web 服务器,它应该使用 php 解释器来处理文件,然后才能将其传送到浏览器。然后,php 解释器将用 PHP 代码的输出替换 <?php?> 之间的所有内容。就像你手动写的一样。处理后的文件将被传送到浏览器。

但是,使用 .php 扩展名告诉 Web 服务器处理 php 代码是可配置的。如果你愿意,你也可以使用其他文件扩展名。

还有一点需要指出。当您只键入 url 路径(没有文件名)时,例如:

http://www.myserver.com/

网络服务器 (apache) 搜索索引文档时有一个扩展名(文件名)的顺序。例如,一个 apache 配置可能包含如下部分:

<IfModule mod_dir.c>
      DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

表示按照上面的顺序搜索索引文档。这意味着如果您将 index.html 和 index.php 放在同一个文件夹中 - 并具有上述配置 - 总是 index.html 将由服务器提供。

【讨论】:

  • 很好的答案,但是速度呢?如果您使用不必要的 php 代码来包含您可以直接写入 index.html 的 html 代码,它是否会使您的页面变慢?
  • 是的,我明白了。但我的意思是:什么更快,例如:index.html = "...

    some text

    ..." 或 index.php = "... somehtmlfile.html = ".. .

    some text

    ..."。所以你可以将'somehtmlfile.html'中的代码直接写入index.html,或者你可以使用index.php然后将一些html代码外包给其他文件,但是这会使您的页面变慢吗?
  • 当然,动态页面比静态 html 页面更昂贵。
  • @rave 这是一个不存在的问题:为什么需要动态页面使用 PHP,否则不需要。就是这样。
  • @Goku 没有标准,是配置问题
【解决方案2】:

如果您将每个页面都以 .php 格式提供,则不会损害网站。 Apache 可以非常快速地提供任何 php,更不用说只包含静态 html 的了。

作为初学者,您可能会发现 php 会让您受益,因为它允许您创建简单的模板。例如,站点页眉和页脚包含可以写入一个文件,然后包含在所有其他页面中。

【讨论】:

    【解决方案3】:

    无论您使用 index.php 还是 index.html,这都不是什么大问题。你可以使用任何一个。唯一的问题是您需要 PHP(或任何其他服务器端脚本语言)来使您的网站动态化。

    就像您有一个登录页面一样,您当然可以将其设为 inde.html,但您的逻辑要么必须在不同的文件中,要么必须嵌入在 HTMl 中。

    【讨论】:

      【解决方案4】:

      您可以使用任何您喜欢的: 如果您更喜欢保留不使用 HTML 数据的表单和基本页面, 并将使用 php 的页面保留为 php 格式即可。

      但我和我认为大多数其他人使用的一种方法是将所有页面制作为 php 文件。这是因为您可以在 php 文件中包含一个 html 文档并以同样的方式显示它。但是您不能从 html 文件中进行 php 查询,因此很容易总是使用 php,以防万一您想向其中添加一些 php 脚本。

      索引.php:

      <?php
      $var = 5;
      ?>
      <html>
      <head>
      <title>My Page</title>
      </head>
      <body>
      <h2>Your variable was <?php echo $var; ?></h2>
      </body>
      </html>
      

      【讨论】:

        【解决方案5】:

        默认情况下,apache 服务器需要一个扩展名为 .php 的文件来解析其中的 PHP 代码。但是,如果您愿意,您可以通过在配置文件中添加一行来配置您的服务器,以使用其中包含 PHP 代码的任何扩展名的文件。您可以自己编辑 apache 以支持 .HTML 扩展名中的 php。

        【讨论】:

          【解决方案6】:

          简单来说,你可以很容易地访问 index.html 文件并获取它下面的数据。但是 index.php 很难访问。对于您的简单应用程序 index.html 将起到作用。如果您正在计划一些大型且安全的应用程序,请使用 index.php

          【讨论】:

            【解决方案7】:

            这是因为有时你可能在index.php 上写了一些逻辑。就像您可以检查用户是否已登录,然后将用户重定向到某个特定页面。您也可以像移动设备一样进行基于设备的重定向。

            你总是可以选择创建index.html,但你不知道什么时候你可能需要在那里有一些逻辑。

            【讨论】:

              【解决方案8】:

              例如,在我的index.php 或其他主页中,我主要使用 php,因为我在网站的其余部分中使用带有变量的变量:

              <?php 
                   $sitepath="http://www.example.com/public";
                   $author="your name here";
              ?>
              

              因为我每次在我的网站上链接图片时都会&lt;?php echo $sitepath ?&gt;,所以它不会损坏或其他什么。由于我一直在重复使用该名称,因此我使用.php 来获得该服务,因为如果我使用该名称,我可以全局更改它。

              我认为像 404.htmlaboutus.htmlViewOneBlogPost.html 这样的简单页面可能是 HTML 页面,您可能不需要任何功能/变量。

              【讨论】:

                【解决方案9】:

                使用 linux 检查 apache2 中文件扩展名优先级的当前设置

                /etc/apache2/mods-enabled/dir.conf

                【讨论】:

                  【解决方案10】:

                  如果您有几个简单的页面,其中代码不会重复很多,那么您可以使用 HTML。但是相信我,如果你有一个 HTML 格式的整个网站,每个文件超过一千行,你会想要使用 PHP。为什么?因为requireinclude。这些将在您需要使用布局时清理您的代码,因此您无需继续复制布局页眉、页脚等的漏洞代码......当您需要插入内容并且有有很多代码。

                  这里有一些关于它的文档

                  https://www.php.net/manual/en/function.include.php

                  【讨论】:

                    猜你喜欢
                    • 2014-09-06
                    • 1970-01-01
                    • 2013-04-18
                    • 1970-01-01
                    • 2012-06-29
                    • 2013-03-24
                    • 2014-06-24
                    • 1970-01-01
                    相关资源
                    最近更新 更多