【问题标题】:PHP script not working in HTML filePHP脚本在HTML文件中不起作用
【发布时间】:2011-01-13 00:14:36
【问题描述】:

我是 PHP 新手。我安装了 XAMPP 并运行了 Apache。我在 XAMPP 的 htdocs 中创建了 helloworld.php,并让 PHP 在我的浏览器中显示。我的问题是,为什么我的 HTML 文件中的 PHP 脚本没有显示在我的浏览器中?我从来没有单独安装过 PHP。我也应该安装它吗?它会与 XAMPP 冲突吗?我的代码如下。任何帮助将不胜感激。提前致谢:

<html>
    <body>
        <?php
            echo "Hello PHP World";
        ?>
    </body>
</html>

【问题讨论】:

  • 您是否打算发布更多代码?
  • 该文件是否在 Apache 服务器的“www”目录中? (我相信它的 www,可能是 www-root)如果是,你打开它就像:localhost/myFile.php?
  • 当我在 Windows 上使用 XAMPP 时,所有 Web 内容都必须放在一个名为 htdocs 的目录中。
  • 好的,我只是想指出该文件必须位于一个特殊文件夹中,该文件夹是该服务器托管的网站的根文件夹...并且您必须以这种方式打开它,不像可执行文件(双击)。
  • 感谢您回复 Andy、Tatu、TRiG 和 Cipi。 @Andy,这是我打算发布的所有代码。这是我在 HTML 中的第一个 PHP 脚本,但它不工作。 @Tatu,输出是一个空白浏览器。 @Cipi,我将 helloworld.html 文件放入 htdocs 文件(即 xampp/htdocs)并尝试了两种方法:在浏览器中输入 localhost/helloworld.html 并按 Enter,然后双击文件的图标。在这两种情况下,我都有一个空白浏览器@TRiG,我首先尝试从我的桌面运行我的 PHP 脚本/HTML 文件,但没有成功,所以我把它放在 htdocs 文件中(我假设这是正确的文件)跨度>

标签: php xampp


【解决方案1】:

我假设您正在尝试在 .html 文件中使用 php? 尝试使用以下行添加 .htaccess 文件或更改 apache 配置:

AddHandler 应用程序/x-httpd-php .html

【讨论】:

  • 是的,我正在尝试在 .html 文件中使用 php。我遵循 w3schools 给出的示例(请参见下面的链接),并假设一旦我运行 Apache,它就可以在任何地方工作:w3schools.com/php/php_syntax.asp 关于 .htaccess 文件或更改 apache 配置,我将不得不研究。跨度>
  • 我的错误,w3schools 确实提到你必须有一个 .php 扩展名(不是 .html),否则它不会工作
【解决方案2】:

XAMPP 已经包含 PHP,但除非您以 .php 结尾脚本名称,否则它不太可能被 PHP 引擎处理。

【讨论】:

  • 是的,但您不需要将脚本放在 XAMPP 的 www 文件夹中吗?还是我错了……?
  • @Cipi:当然。但我更愿意给提问者一些怀疑的好处,除非他们证明不是这样。
  • 不仅不太可能,它只配置为 .php(也许是 .php5,我忘了)开箱即用。简单的 .html(或 .htm)将直接由 Apache 提供。
  • 哦,好吧,我想我可以把 php 脚本放在一个 html 文件中,它可以在我硬盘上的任何地方工作。没有意识到我必须把它放在一个特殊的地方,而且我必须有一个 .php 扩展名。好的,非常感谢。我通过将扩展名从 .html 更改为 .php 来使其工作。但是,如果我只是单击文件,Windows 不知道创建它的程序吗?这是否意味着我还需要在 XAMPP 旁边安装 PHP?
  • 现在您需要通过浏览器访问它,方法是转到localhost 或诸如此类。
【解决方案3】:

停止 apache 服务,然后在 c:\xampp\apache\conf\httpd.conf 部分中添加一项更改,方法是添加...

AddType application/x-httpd-php .html .htm  

重启apache!

这看起来像是当前 xampp 发行版中 win 32 位的一个大“功能”。

【讨论】:

  • 我怎么看不到apache文件夹?更新:找到了。 httpd.conf 在我的 etc 文件夹中。它不会让你直接编辑,所以你必须在编辑之前sudo su。谢谢顺便说一句!
【解决方案4】:

您应该在 http conf 中添加 mime 类型 例如在 httpd.conf 的 apache 中 进入

<IfModule mime_module>
    #
    # TypesConfig points to the file containing the list of mappings from
    # filename extension to MIME-type.
    #
    TypesConfig "conf/mime.types"
   .......
    AddType application/x-httpd-php .html .htm
   AddType text/html .shtml

    AddOutputFilter INCLUDES .shtml
</IfModule>

【讨论】:

    【解决方案5】:

    apache 的 php 模块将自己注册为 mime 类型 application/x-httpd-php 的处理程序。并且配置文件 apache\conf\extra\httpd-xampp.conf 包含这些行

    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    

    它告诉 apache 所有以 .php 作为扩展名的文件都将被 application/x-httpd-php 的处理程序处理。
    如果您(真的)希望您的 .html 文件也由 php 模块处理,那么您必须为 .html 扩展添加类似的内容。 (还有其他方法可以告诉 apache 哪个扩展映射到哪个 mime 类型/处理程序。但是 FilesMatch/SetHandler 很好。)
    如果您只想为一个目录启用此“功能”,您可以使用.htaccess file 更改该目录(及其子目录)的配置。

    【讨论】:

    • 感谢您的回复 VolkerK。由于我已将 .html 扩展名更改为 .php,因此该脚本正在运行。但是,如果我单击文件 helloworld.php,Windows 不知道创建它的程序(即使我正在运行 Apache)。我有点疑惑,是不是还要安装PHP for Windows?
    • “如果我点击文件” - 即在 Windows 资源管理器中双击?您的 Apache 和 Windows 资源管理器没有连接,它们彼此“不知道”。您的 Apache 处理 http 请求,例如您的浏览器发送。
    【解决方案6】:

    太过分了。所有这些建议让我走错了大约 5 个小时。 JK,但我确实阅读了很多谷歌搜索项目都给出了错误的答案,每个建议都只是添加了更多的错误答案。

    答案其实很简单,您会想大吃一惊:只需将文件扩展名从“.html”更改为“.php”!!!!请记住,您可以完全使用 PHP 构建网页,并且所有 JavaScript 和基于 JavaScript 构建的东西(如 JQuery、bootstrap 等)都可以使用。

    这是一个简单的证明示例:

    <head>
    
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    
        <title>Blank Web Page</title>
    
        <link rel="stylesheet" type="text/css" href="css/css.css">
    
    </head>
    
    <body>
    
        <?php
    
        $son = 5;
        $nos =10;
    
        echo $son + $nos;
    
        ?>
    
        <h4>test to see if this html element can be output too!</h4>
    
        <script type="text/javascript" src="js/js.js"></script>
    
    </body>
    

    请注意,我使用的是您的标准 html,即使它没有显示我的 HTML 标记(相信我它就在那里)、网页内容和插入的 php 代码。当然结果是 15 并且 html 元素 h4 也正确呈现。将扩展名改回“html”,您将只获得 h4 元素,您会发现您的 php 代码已使用 html 的多注释注释掉。

    我忘了补充一点,这也适用于 Xampp。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-12
      • 2018-07-08
      • 1970-01-01
      相关资源
      最近更新 更多