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他の2つの場合よりも多くのHTMLタグがある可能性があります。

ただし、ユーティリティの出力はfileシステムの動作には影響しません(もちろん、出力を解析する場合を除く)。特に、このファイルをHTMLで処理するのは「あなたのシステム(RHEL)」ではありません。有効なPHPファイルの場合、php内容に関係なくスクリプトは正常に実行されますfile。 (php -l file3.php文法検査を試してください。)

答え2

PHPスクリプトは短いタグを使用しているため、サーバーはファイルをPHPスクリプトとして実行しません。つまり、 <? //php code ?> 一部のPHPインストールでは、短いタグはデフォルトで無効になっています。

したがって、<? ?>タグをPHP設定に置き換える<?php ?>か、短いタグを有効にするだけです。

関連情報