我有一个目录 - .../dir
- 包含许多文件 - john.txt
,bob.txt
,anne.pdf
,tom.txt
等...
我获得了一个文件名,需要检索其扩展名。我很有信心,对于每个文件名(即john
,bob
等),只有一个文件 - 因此,当john.txt
和{{{{}}时,不应该存在这种情况。 1}}。但是,如果发生这种情况,只选择第一个文件即可。让我们说PDF,因为它按字母顺序排在早期。
我只找到了scandir(),但它返回整个目录。我可以搜索它后面的阵列,但我希望,也许有更高效的东西?
答案 0 :(得分:1)
您应该检查pathinfo()
功能以获取扩展程序。
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // since PHP 5.2.0
?>
至于搜索文件,特别是目录,您可以使用glob()
函数
$file = glob("../dir/jon.*");
答案 1 :(得分:1)
您可以尝试这样的事情:
$filename = 'ana';
$files = glob($filename . '.*');
if ($files && ($ext = pathinfo($files[0], PATHINFO_EXTENSION))) {
echo $ext;
}