我是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;
}