PHP和HTML文件扩展名有什么区别?

9
我有一个包含以下代码的.php文件。当我将文件扩展名更改为.html时,它仍然以相同的方式运行。有人能解释一下以下问题吗:
  1. 为什么这个文件使用两种扩展名时表现相同?
  2. .php.html文件扩展名之间有什么区别?
.php文件
<html>

     <head>
          <!-- some html code -->
     </head>

     <body>
          <?php echo "Hello!" ?>
     </body>

</html>

1
你说的“打开”是指在文本编辑器中打开,还是由Web服务器(如Apache)提供服务? - Roman
它真的表现得一样吗?当以.html格式查看文件时,您是否看到“Hello!”? - Michael Berkowski
我的猜测是你会在浏览器中看到 <?php echo "Hello" ?>! - Cygnusx1
@Cygnusx1 不,它正在显示“Hello!” - sumit
1
好的,就像其他人回答的那样,您的Web服务器以相同的方式处理.php和.html文件...因此,您在HTML中的PHP标记将在服务器端执行并放入返回的HTML中。 - Cygnusx1
10个回答

8
文件类型只是识别文件的一种方式,您不能总是信任它们。
根据您的Web服务器配置,您将看到不同的结果。
.html通常仅用于没有服务器端代码的html。
.php用于服务器端php代码和必要的html。
它们可以用于任何内容,这取决于设置。

4
您可以配置您的Web服务器以不同方式处理.php和.html文件。您的Web服务器已配置为将两者解释为PHP。大多数服务器将.php作为PHP处理,并原样提供.html。也就是说,如果您将代码放在HTML文件中,则PHP代码不会运行并显示在输出中。
有些人发现在URL中使用.html比.php更好。如果用户下载您的页面并尝试双击打开它们,则可能会很有用。

1

PHP是一种动态生成的语言,使用php指示。然而,您看到的页面并不是原始编写的样子,而是最终结果。最终结果实际上是一个html文件。

因此,回答您的问题,对于客户端而言,以php或html结尾的页面将支持完全相同的内容(即html文档)。即使浏览器不应该这样做,它们通常会尝试可视化对它们没有意义的标记(例如,浏览器解释<?php echo "Hello!" ?>可能会决定“Hello”是要显示的文本)。

虽然html文档中真的不应该有php标记,因为它不应该出现在html文档中(php文档被翻译成html文档,从而删除了php标记)。


1

区别在于您的Web服务器配置方式,或者您是否需要在本地运行文件时使用Web服务器(即-使用当前计算机上的文件)。

例如,如果您在未安装Web服务器的计算机上运行两个版本,.html文件将可以在浏览器中正常打开,但不会对任何PHP标记进行任何操作。然而,.php文件却不一定能够运行,甚至有可能浏览器尝试“下载”该文件。

文件扩展名的作用是告诉计算机如何处理给定的扩展名。就像您的计算机会在文字处理器中打开.doc文件或基本文本编辑器中打开.txt文件一样。就像您可以告诉计算机在文字处理器中打开.txt文件一样,您可以告诉Web服务器以同样的方式处理.html文件和.php文件(这显然是您设置的方式)。


1

扩展名是操作系统识别文件并决定如何处理它的方式,例如使用哪个应用程序打开。

PHP是一种服务器端脚本语言。它由安装了PHP的Web服务器解释。例如,在XAMPP中,XAMPP / php文件夹中的php.exe文件解释php文件/命令。

HTML是通过互联网发送信息的标准。因此,无论您使用哪种服务器端脚本语言,您的文件的最终结果都是一个HTML页面。您正在使用的Web服务器将处理PHP命令并将其转换为相应的HTML,并将其发送到您的浏览器。然后,浏览器会处理(编译)HTML代码以显示您的网页。

在浏览器上看到的基本上都是HTML。 PHP用于与Web服务器交互并处理用户通过表单输入到Web浏览器中的信息,或执行底层第三方脚本(例如TCL脚本)以执行后台自动化功能,而这些对于使用网站的用户来说是隐藏的,或解析XML文件或从数据库中提取信息或维护会话信息等等。

总的来说,PHP处理Web应用程序与配置为运行PHP的服务器之间的交互。 HTML只是将结果转储到浏览器中。

你可以这样想- HTML只是你的网站外观... PHP是使你的网站智能化以便与用户交互的关键...
你得到相同的结果,因为PHP可以嵌入HTML,你的Web服务器处理两个文件以给出相同的结果。但是,如果你的Web服务器上没有安装PHP,你将在浏览器中得到“”作为输出。

0

您可以将任何扩展名设置为解析为PHP,因此在您的情况下,区别仅在于扩展名。如果您在Apache配置中禁用HTML文件作为php解析,则文件内容将不会被PHP解析。就是这样

例如,您可以在Apache配置中添加任何扩展名以由php解析,如下所示

application/x-httpd-php myextension

其中myextension是您要解析的文件的扩展名。


0

PHP是一种服务器端脚本语言。所有带有php标签的内容都将由服务器生成并放置在HTML响应中。


这是与配置相关的内容,Apache配置允许将HTML文件解析为php,如果您禁用它,则它们将不会被解析。 - Senad Meškin

0
据我所知,根据文件扩展名,Web服务器将以某种方式处理您的文件。例如,您可以有一个不生成任何HTML输出但会重定向到另一个文件的PHP文件。
如果您想要一个以“*.html”结尾的页面,可以通过编程实现。

0

PHP: 预处理器:一种服务器端脚本语言 HTML: 超文本标记语言

".php" 和 ".html" 只是文件扩展名,但如果您想使用 PHP 代码,必须在支持 PHP 的服务器上运行它。


0

PhP 是服务器端的。

HTML 是客户端的。

此外,在网络上,文件类型并不重要。它们会被 !DOCTYPE 声明覆盖。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接