[英]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可能是apache
或apache2
而您的PHP的名称之后可能是php5
。 这应该同时反映在PHP conf文件所在的目录和重新启动的服务中。
conf文件更新后,Apache将把所有html文件都视为PHP,并且您应该能够在整个文件中放入尽可能多的PHP代码。 注意:PHP解析器仅在使用<?php
打开(或<?
如果启用了短标签的情况下打开 )和?>
关闭PHP位的情况下才能工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.