【问题标题】:Why use index.php rather than index.html for point of entry (homepage)?为什么使用 index.php 而不是 index.html 作为入口点(主页)?
【发布时间】:2014-06-24 16:40:41
【问题描述】:

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

谁能解释一下如何构建这个项目。

我有很多拼图(文件),但无法正确地将它们凝固。

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

我的问题是,当home条目是index.php和home条目是index.html时,请有人逻辑地向我解释?

当我从任何站点查看源代码时,它总是且只有 html 代码可见。

【问题讨论】:

  • 如果您需要在呈现index 页面之前完成服务器端处理(即您需要执行PHP 代码),则使用index.php。如果您只是显示静态 HTML,请使用 index.html。两个问题:你有index.php 页面吗? PHP 安装了吗?
  • 我的猜测是,你没有安装 PHP。 html 用于静态页面,php 用于动态页面
  • @iHaveAQuestion:首先,您不要使用问题区向个人用户编写 cmets。这不是聊天室。评论属于这里。此外,当您说“当我从任何站点查看源代码时,总是且只有 html 代码可见。”很明显,你的能力已经超出了你的想象。 PHP 是一种脚本语言。 HTML 是为查看网站而创建的 PHP 代码的最终产品。如果你不能掌握这一点,那么在你做任何其他事情之前,你需要做很多工作来了解 PHP 和 HTML 的基础知识是如何交互的。

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


【解决方案1】:

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

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

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

您当然可以隐藏 .php 扩展名,但如果您不了解 PHP 到底是什么,我觉得这超出了答案的范围。

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

【讨论】:

  • 真的。谢谢,正在清理。我正在使用 MAMP。自己安装和配置。一直在编写 php 代码并通过输入 localhost/pathToFolder 对其进行测试。一些有用的回复需要我进行故障排除和试验才能解决。如果可能,请关注我的主题。我可能需要一段时间来更新我的进度,但真的 - 你帮了大忙。即使问题尚未完全解决,我如何向提供帮助的用户提供认可?
  • 如果您觉得我的回答很有帮助,但还没有为您提供您正在寻找的完整答案,您可以点赞。我不熟悉 MAMP,因为我不是 MAC 用户,所以在涉及 MAC 特定配置时我可能无法为您提供帮助。不过我确实警告你,这篇文章可能会被删除,因为它不符合 Stack Overflow 的格式,它是通用的。我们无法为您提供自己的个人教程,您需要自己进行更多研究。祝你好运!
  • 不。我不需要个人教程。网上很多。请不要删除帖子。我已经修改了我的 httpd.conf 文件——只是需要提醒一下。并且上面的响应非常适合从概念上使服务器端 - 代码处理的客户端技术理顺。如果您在那里进行网络搜索,您会注意到发布了许多此类查询,并且此处的响应比大多数响应更清晰,以我的拙见,这将为技术社区提供良好的服务。回到它:)
【解决方案2】:

我认为混淆来自 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。

输出(源代码客户端由服务器给出):

Hello World!

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

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

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

【讨论】:

  • 请阅读上面对 quinoxmatt 的评论,因为它也适合你。真的谢谢。会更新。如果可能,请密切关注我的进度。
【解决方案3】:

这取决于网络服务器的配置方式。比如apache使用了dir_module,会依次查找httpd.conf中所有定义为DirectoryIndex的文件。

httpd.conf 示例(片段)

<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

编辑:我想我误解了这个问题?!哦

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

【讨论】:

  • 请阅读上面对 equinoxmatt 和 am jones 的评论,因为它也适合你。真的谢谢。会更新。如果可能,请密切关注我的进展。我感谢有关 http.conf 文件的提醒。我过去曾去过那里,如果还没有,则需要对其进行修改以优先考虑 .php。只需要一点时间来解读所有这些非常有用的反馈。
猜你喜欢
  • 2023-03-29
  • 2015-07-12
  • 1970-01-01
  • 2012-12-21
  • 2011-12-13
  • 2014-09-06
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多