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시스템 작동에 영향을 주지 않습니다(물론 출력을 구문 분석하는 경우는 제외). 특히 이 파일을 HTML로 처리하는 것은 "귀하의 시스템(RHEL)"이 아닙니다. 유효한 PHP 파일이라면 php내용에 관계없이 스크립트가 정상적으로 실행됩니다 file. ( php -l file3.php문법 검사를 시도해 보세요.)

답변2

PHP 스크립트에서 짧은 태그를 사용하고 있기 때문에 서버가 파일을 PHP 스크립트로 실행하지 않습니다. 즉, <? //php code ?> 일부 PHP 설치에서는 짧은 태그가 기본적으로 비활성화되어 있습니다.

따라서 <? ?>태그를 PHP 구성으로 바꾸 <?php ?>거나 짧은 태그를 활성화하면 됩니다.

관련 정보