PHP -获取文件的其他扩展名


PHP - Get other extensions of file

我是PHP新手,需要帮助。

我有一个文件夹,里面的文件如下:

D:'fold'A.pdf
D:'fold'A.doc
D:'fold'A.xls
D:'fold'A.txt

对于某些工作,我使用A.txt文件,现在我需要从相同的文件夹路径回显示其他文件。

就像搜索A.txt一样,echo

A.pdf
A.xls
A.doc

I tried something:

$filename = basename($value, ".txt"); //$value has the whole path and the extension is .txt
echo $path = pathinfo($value, PATHINFO_DIRNAME) ."''". $filename;// prints the path & base name.

但是如何打印'.txt'以外的扩展名?


谢谢你的建议,我试过这样做,

$value = "D:''Fold''A.txt";
$filename = basename($value, ".txt"); 
$path = pathinfo($value, PATHINFO_DIRNAME) ."''". $filename; 
foreach (glob($path."*") as $filenames)  
 {   
  if (!strpos($filenames, ".txt"))
  echo $filenames; 
 }

正确答案

使用说明:

glob($path."/".$filename.".*");

参见glob函数的定义:http://php.net/manual/en/function.glob.php

try this

$folder = 'registrationimages/sliderimages/';

            $filetype = '*.*';
            $files = glob($folder.$filetype);
            $count = count($files);
            for ($i = 0; $i < $count; $i++) {
                echo $files[$i] ;
    }

好的,假设你使用的是某个文件,比如A.txt,你想在同一目录下回显示所有具有相同名称但不同扩展名的文件

您所需要做的就是获取文件目录和名称,不带扩展名,并使用glob函数。

// if $value is your full filename(path+filename+extension)
$dotPosition = strpos($value, '.');
$myExt = substr($value, $dotposition); // getting the extension
$myFile = substr($value, 0, $dotPosition); // this should crop the extension
foreach (glob("$myFile.*") as $filename) {
   if(strpos($filename, $myExt) == false){ // checking if it's different extension
      echo "$filename 'n";
   }
}

*符号表示任意数量的任何符号->在您的示例中是任何扩展。

我希望我的问题是正确的,并且说得足够清楚;)

注:您可能注意到,我只是对文档站点上的示例做了一点编辑。查看那里的示例通常会有很大帮助!

这将抓取所有扩展名为

的文件
glob($path . "/" . $filename ".*");

添加扩展检查以跳过.txt输出

foreach (glob($path . "/" . $filename ".*") as $filenames)  {   
  if (!strpos($filenames, ".txt"))
    echo $filenames; 
}

感谢所有人的帮助,最后排除.txt文件并返回所需文件的整个代码是:

$value = "D:''Fold''A.txt";
$filename = basename($value, ".txt"); 
$path = pathinfo($value, PATHINFO_DIRNAME) ."''". $filename; 
foreach (glob("$path.*") as $filenames)  
 {   
  if (!strpos($filenames, ".txt"))
  echo $filenames; 
 }