为什么我的php标签转换为html评论?

朋友的主机似乎configuration错​​误。 我尝试执行PHP,但它似乎并没有工作。

在Chrome的检查元素中:

<?php echo 'test'; ?> 

变成:

 <!--?php echo 'test'; ?--> 

此外,它一直在触发一个文件下载,而不是打开它作为一个网页。

我已经尝试了.htaccess文件中的各种代码,但它似乎没有任何影响:

 AddType x-mapp-php5 .php AddType application/x-httpd-php .php AddHandler x-mapp-php5 .php 

正确配置PHP操作的地方是httpd.conf文件,它位于Apache安装目录的conf子目录中。

在那里,你将需要寻找模块加载部分,这将是一堆以Loadmodulee开头的行。 在那里的某个地方,你应该有以下(或者非常相似的东西):

 Loadmodulee php5_module "location\of\your\php\installation" AddType application/x-httpd-php .php PHPIniDir "location\of\your\php\configuration\file" 

我不太熟悉Linux,但是在Windows(WAMP)安装中,这些将是以下内容:

 Loadmodulee php5_module "c:/program files/php/php5apache2.dll" AddType application/x-httpd-php .php PHPIniDir "C:/program files/php" 

我的机器上的httpd.conf文件位于C:\Program Files\Apache Group\Apache2\conf\httpd.conf

也可能是PHP根本就没有安装在你的机器上,在这种情况下,你将不得不下载并安装它。 布拉德已经在他的评论中提到了相关的链接(顺便提一句,布拉德),但是为了把所有东西都放在一个地方:

PHP:安装和配置 – 手册

听起来,你的PHP没有正确配置或安装在你的灯配置。 你使用什么分布? 这可能就像运行重新安装PHP的命令一样简单,否则你可能需要编译Apache的PHP支持。

你的Chrome对你说谎。

你的PHP源文件是<?php echo 'test'; ?> <?php echo 'test'; ?> 。 由于PHP没有执行,这个文件被发送到浏览器。 如果浏览器应该解释这个文本,它会偶然发现<? ?>标记。 它们有一个含义 – 它们是“XML处理指令”,开放角度之后的文本定义了目标。

显然,浏览器不知道名为“PHP”的目标,因此该文本被忽略。

然后,元素检查器尝试显示DOM,并且正在说明原始源代码,因为他正在处理PARSED源代码 – 这很好,因为您通常想知道浏览器在哪些数据上的行为,这包括浏览器解释你的来源。

但是,如果出现任何错误,浏览器将尝试修复它,修复程序包含在元素检查器中。

显然,对未知的XML处理指令的修复是通过注释将其禁用。

这只是发生在我身上。 原来我忘了把文件类型从.html改成.php

如果你把你的代码放在标准目录(在我的情况下是开发场景)之外,你应该检查你的/ etc / apache2 / mod-enabled或/ etc / apache2 / mod-在php5.conf(对于ubuntu)注释注释表示的行:

 # To re-enable PHP in user directories comment the following lines # (from <Ifmodulee ...> to </Ifmodulee>.) Do NOT set it to On as it # prevents .htaccess files from disabling it. <Ifmodulee mod_userdir.c> <Directory /home/*/public_html> php_admin_value engine Off </Directory> </Ifmodulee> 

这个答案不适用于OP的这个问题的具体变体,但我有基本相同的问题 – <? var_dump($test); ?> <? var_dump($test); ?> <? var_dump($test); ?>被转换为<!--? var_dump($test); ?--> <!--? var_dump($test); ?--> <!--? var_dump($test); ?--> – 我可以通过在php.ini中启用short_open_tag来解决这个问题。

听起来你正在使用一个编辑器来改变你输入的内容。 确保文件中的内容是文件中的内容。 使用FTP上传一个PHP文件应该确保这一点。

当我意外地尝试通过file://协议,而不是通过安装的站点在服务器上的浏览器中测试本地php文件时,我遇到了完全相同的问题。

所以答案是:“PHP先生已经离开了大楼”。 我们需要检查配置,文件的位置或访问。

而浏览器只是试图修复一个网页,并帮助我们。

我刚刚解决了这个问题。 您需要从WAMP打开文件,而不是从硬盘驱动器直接打开。

在你的浏览器中,输入: localhost/...../yourfile.php

否则,您的浏览器将用<!-- ?php ?-->替换所有<?php ?> <!-- ?php ?-->

看来你必须明确指示Apache来处理HTML文件作为PHP文件,我有同样的问题,但重命名文件.php解决了我的问题。

在Ubuntu系统上,安装apache php5插件为我工作:

 sudo apt-get install libapache2-mod-php5 sudo service apache2 restart