更好的方法来查看文件是否具有某些扩展名

时间:2011-12-22 11:51:50

标签: php

我现在正在我的代码中执行此操作,以查看文件名是否具有扩展名.txt,但我认为它基本上会检查是否包含 .txt和不一定 .txt结尾。 php有更好的方法来进行扩展检查,而不是使用strpos吗?

strpos($filename,'.txt') !== false

5 个答案:

答案 0 :(得分:3)

您可以使用pathinfo()功能获取文件的扩展名:

$info = pathinfo($pathToFile);
$ext = $info['extension'];

然后检查扩展名是否是允许的扩展名之一:

$validExtensions = array("txt", "doc");
if (in_array($ext, $validExtensions) {
    //more code
}

答案 1 :(得分:2)

使用以下代码,它无法改善:

$ext = pathinfo('test.txt', PATHINFO_EXTENSION);

答案 2 :(得分:1)

$ext = pathinfo($filename, PATHINFO_EXTENSION);

答案 3 :(得分:0)

strpos是好的,你必须记住,你不需要先,但最后一点 并使用strrpos(),注意双“r”。

答案 4 :(得分:-1)

您可以通过添加到阵列来允许多个扩展。

$allowed = array('txt');

if (in_array(pathinfo($filename, PATHINFO_EXTENSION), $allowed)){
    // Has the correct file extension
}

或只允许txt扩展的更简单版本可能是:

if (pathinfo($filename, PATHINFO_EXTENSION) == 'txt'){
    // Has the correct file extension
}