如果是.phtml和.php中的语句

时间:2013-06-11 09:59:50

标签: if-statement php

我无法理解文件扩展名.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 个答案:

答案 0 :(得分:2)

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

httpd.conf文件中添加类型application / x-httpd-php .php .phtml .html以运行phtml文件

否则,您会看到整个代码块,就像您在xyz.phtml中保存上述代码并通过http://localhost/xyz.phtml

运行一样

修改

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

LINK PROVIDED

答案 1 :(得分:2)

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

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

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

AddType application / x-httpd-php .php .phtml

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

答案 2 :(得分:1)

.phtml和.php文件之间没有区别。它们都是一个PHP代码,可能有一些HTML部分。

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

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

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

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

答案 3 :(得分:0)

试试这个:

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

这将适用于.php和.phtml

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