如何测试文件是否是任何类型的代码,字符串或文本文件? (PHP)

时间:2018-06-14 18:08:42

标签: php file text file-extension

我正在尝试制作一个if语句来测试文件是否可以使用文本框进行编辑,例如.txt或.html,.php,.css等。这是我到目前为止所拥有的。

$ext = pathinfo($file, PATHINFO_EXTENSION);
    echo $ext;
     if ($ext == 'html' || $ext == 'php' || $ext == 'css' || $ext == 'js'  || $ext == 'txt') {
       echo 'true';
     } else {
       echo 'false';
     }

我想让if语句更短,所以我不必列出几十个文件扩展名。有没有更短的方法来做到这一点?

2 个答案:

答案 0 :(得分:0)

函数in_array将解决您的问题参考:http://php.net/manual/en/function.in-array.php

$ext = pathinfo($file, PATHINFO_EXTENSION);
$extArray= array("html", "php", "css", "js","txt");

if (in_array($ext, $extArray))
  {
  echo 'true';
  }
else
  {
  echo 'false';
  }

答案 1 :(得分:0)

检查将以text/htmltext/plainimage/png等方式返回的MIME类型:

$finf = finfo_open(FILEINFO_MIME_TYPE);
$type = finfo_file($finf, $file);

if(strpos($type, 'text') === 0) {
    echo 'true';
} else {
    echo 'false';
}

或者:

if(strpos(mime_content_type($file), 'text') === 0) {
    echo 'true';
} else {
    echo 'false';
}