3

我无法理解文件扩展名 .phtml 。从我读过的内容来看,它应该是一种同时使用 html 和 php 的方式(如果我弄错了,请纠正我)。我要做的很简单,我有一个 php 变量,如果它满足某个条件,则应该执行一些 html 代码,如果不是,则应该执行一些其他 html 代码。我的代码是:

<html>
    <head>
    </head>
    <body>

<?php
$code = "dk";
?>

<?php if($code == "dk"): ?>
<p>
1</p>    

</br>


<?php else: ?>
<p>
2</p>     

</br>

<?php endif; ?>

    </body>
</html>

当我将它保存为 .php 文件并将其运行时,我得到的输出只有“1”,但使用 .phtml 我得到“1 2”。有人可以解释我为什么吗?

4

4 回答 4

2

您需要配置运行.php/.phtml扩展,所以

AddType application/x-httpd-php .php .phtml .html 在你的httpd.conf文件中运行phtml文件

否则你会看到整个代码块,就像你保存上面的代码xyz.phtml并通过它运行它一样http://localhost/xyz.phtml

编辑

在评论中提供的 URL 之后,我检查了链接,发现您的 PHP 代码实际上是在查看源代码中呈现的。请通过查看此页面的源代码来检查自己,因此1 2呈现为您提到的 HTML 的一部分,但由于服务器是无法理解它默默地引入了PHP逻辑代码,而不进入逻辑实现部分,希望它对你有意义。

提供的链接

于 2013-06-11T10:04:26.893 回答
2

PHP 文件的优点/缺点之一是您可以轻松混合 PHP 和 HTML。

在您的情况下,我认为您的服务器未配置为解释为以 .phtml 结尾的 PHP 文件,因此 PHP 被完全忽略。查看输出“1 2”的页面的页面源,看看是否为真。

您可以将任何您想要的扩展名解释为 PHP,甚至 .html,但这当然会导致额外的开销。如果您正在运行 Apache,并且希望 .phtml 也被解析,请添加一行

AddType 应用程序/x-httpd-php .php .phtml

应该做的伎俩。如果您还没有使用 mod_rewrite,选择不同的扩展可以帮助隐藏您正在使用 PHP。

于 2013-06-11T10:06:34.603 回答
1

.phtml 和 .php 文件之间没有区别。它们都旨在成为 php 代码,其中可能包含一些 HTML 部分。

您的问题是您的服务器不知道如何处理 .phtml 文件。您可以将文件扩展名更改为 php(通常在安装 PHP 后会自动更改您的服务器设置),或者接受swapneshJ Griffiths 的回答。

事实上,PHP 可以解析任何具有任何扩展名的文件,如果您愿意,它甚至可以是 .html 或 .jpg。这无关紧要*),因为标题是最重要的。

从 PHP 的角度来看,您的代码是正确的,您需要更改服务器设置。

*) 它可以在一些较旧的 Internet Explorer 浏览器中使用

于 2013-06-11T10:09:40.833 回答
0

尝试这个:

<p>
<?php echo (($code == "dk") ? "1" :"2"); ?>
</p>
</br>

这适用于 .php 和 .phtml

不知道你为什么要做冗余代码,这也是优化代码。

于 2013-06-11T10:04:55.217 回答