繁体   English   中英

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

[英]How to run a multiline PHP script in HTML page?

我想把头围在php和html上,并想问一些我认为是基础的帮助。

我知道您可以在带有标签的.html页面中的一行上运行php脚本。 当我在本地主机上运行的多行脚本(生成表)较长时,就会出现问题:

 <?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>"; 
  ?>

上面的内容会在第一个“>”符号后以纯文本形式出现,所以我猜测由于某种原因,当我关闭php代码片段并以纯HTML格式执行其余操作时,页面会读取它(我通过apache运行文件)。 我知道您可以将文件重命名为.php,并使整个工作正常进行,但是我想了解PHP在HTML页面上的行为。

所以我有两个问题:

1)是否可以使.html读取上面的代码片段而又不会使其分开? 我尝试了htmlspecialchars,没有帮助。

2)是否可以将上面的代码片段作为一个单独的.php文件(如我可以调用javascript函数那样从.html页面调用)? 我试过<?php include 'field.php';?> 我研究了.htaccess,但似乎这是实时版本的解决方案,对我不起作用。

谢谢!

以上将在第一个“>”符号后以纯文本形式出现,

未处理PHP。 可能是因为您使用的是.html扩展名。 使用.php

仅当您明确告诉Apache将.html视为PHP文件时, .html才起作用。

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

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

  echo "<table border='1'>

虽然并非没有扩展名为.html文件可以渲染PHP(或Perl,Python或您拥有的文件),但是服务器默认情况下却没有设置该文件。 我建议将文件的扩展名更改为.php 如果您的服务器完全可以处理PHP,则将导致它正确评估脚本。

您需要将Apache设置为将HTML文件读取为PHP。 找到您的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打开(或<?如果启用了短标签的情况下打开 )和?>关闭PHP位的情况下才能工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM