php 上的文件显示 HTML 文档

php 上的文件显示 HTML 文档

嘿,

file当我在 apache2 Vhost 上处理一些 .php 文件时遇到问题。问题是这样的:

# file *.php
file1.php:    PHP script, UTF-8 Unicode text, with very long lines
file2.php:    PHP script, UTF-8 Unicode text, with very long lines
file3.php:    HTML document, UTF-8 Unicode text, with very long lines

关于为什么系统 (RHEL) 没有将 file3.php 视为 PHP 脚本的任何想法?

# head file3.php 
<?
include("./some/files.php");

$var="";

$var = "select var, var from vars order by 2";
$var = var($var,$var);
while ($var = @var($var))
{ var($var) ;
  $var .= "\"".$var."\"," ;

我已经改变<?<?php,但什么都没有改变。

php -v
PHP 5.4.16 (cli)

答案1

file实用程序使用不同的启发式方法来确定文件类型。可能是这种情况file3.php比其他两种情况有更多的 HTML 标签。

但是,实用程序的输出file不会影响系统的操作(当然,除非您正在解析输出)。特别是,并不是“您的系统 (RHEL)”将此文件视为 HTML。如果它是有效的 PHP 文件,php则将按其应有的方式执行脚本 - 与内容无关file。 (尝试php -l file3.php进行语法检查。)

答案2

您的服务器没有将您的文件作为 php 脚本运行,因为您在 php 脚本中使用短标签,即 <? //php code ?> 在某些 php 安装中,短标签默认禁用。

因此,只需用 php 配置替换<? ?>标签<?php ?>或启用短标签即可。

相关内容