如何在HTML页面中运行多行PHP脚本?

时间:2013-09-12 21:37:22

标签: php html

我试图围绕php和html,并想要一些我认为基本的帮助。

我知道你可以在带有标签的.html页面的单行上运行php脚本。当我从localhost:

运行多行(生成一个表)时,问题出现了
 <?php
  $rows = 10; // define number of rows
  $cols = 10;// define number of columns

  echo "<table border='1'>"; 

  for($tr=1;$tr<=$rows;$tr++){ 

  echo "<tr>"; 
    for($td=1;$td<=$cols;$td++){ 
           echo "<td>Fill</td>"; 
    } 
  echo "</tr>"; 
  } 

  echo "</table>"; 
  ?>

以上将以“&gt;”之后的纯文字形式出现标志,所以我想由于某种原因,页面读取它,因为我关闭php片段并执行休息作为纯HTML(我通过apache运行文件)。我知道您可以将文件重命名为.php,并使整个工作正常,但我想了解PHP在HTML页面上的行为方式。

所以我有两个问题:

1)是否可以让.html读取上面的代码片段而不将它分开?我试过htmlspecialchars,没有帮助。

2)是否可以将上面的代码段作为单独的.php文件,我从.html页面调用,就像我可以调用javascript函数一样?我尝试了<?php include 'field.php';?>但没有用。我已经研究过了.htaccess,但它似乎是现场版本的解决方案,对我来说不起作用。

谢谢!

3 个答案:

答案 0 :(得分:3)

  

以上将以“&gt;”之后的纯文字形式出现签署,

PHP尚未处理。可能是因为您正在使用.html扩展程序。使用.php

.html仅在您明确告诉Apache将.html视为PHP文件时才有效。

答案 1 :(得分:0)

看起来你实际上根本没有评估PHP。我建议您查看源代码,然后您会看到浏览器实际上正在尝试将所有这些呈现为文档中的标记:

<?php
  $rows = 10; // define number of rows
  $cols = 10;// define number of columns

  echo "<table border='1'>

虽然扩展.html扩展名为.php的文件(或者Perl,或者Python,或者你拥有的文件)并非不可能,但是服务器默认情况下设置该文件的情况并不常见。我建议将文件的扩展名更改为{{1}}。如果您的服务器设置为完全处理PHP,那么将导致它正确评估脚本。

答案 2 :(得分:0)

您需要将Apache设置为以PHP格式读取HTML文件。找到你的php.conf,它通常是etc目录,如:/etc/apache/mods-enabled/php.conf

将以下内容添加到文件中:

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

然后重启apache服务:

service apache restart

服务器上的模块也可能有不同的名称。 Apache可能是apacheapache2,您的PHP可能具有php5之类的名称之后的版本。这应该反映在PHP conf文件所在的目录和重新启动的服务中。

一旦更新了conf文件,Apache会将所有html文件视为PHP,并且您应该能够在整个文件中放置尽可能多的PHP代码。注意:PHP解析器仅在您使用<?php打开(或<?打开short tags are enabled)和?>关闭PHP位时才有效。