我无法理解文件扩展名.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”。有人能解释我为什么吗?
答案 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逻辑代码,希望它对你有意义。
答案 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's或J Griffiths's回答。
事实上PHP可以解析任何扩展名的文件,如果你愿意的话,甚至可能是.html或.jpg。这无关紧要*),因为标题是最重要的。
从PHP的角度来看,您的代码是正确的,您需要更改服务器设置。
*)它可以在一些较旧的Internet Explorer浏览器中使用
答案 3 :(得分:0)
试试这个:
<p>
<?php echo (($code == "dk") ? "1" :"2"); ?>
</p>
</br>
这将适用于.php和.phtml
不知道你为什么要做冗余的代码,这也是优化代码。