查找具有特定名称和任何扩展名的文件
Posted
技术标签:
【中文标题】查找具有特定名称和任何扩展名的文件【英文标题】:Finding a file with a specific name with any extension 【发布时间】:2011-03-13 05:54:03 【问题描述】:请注意,我希望更改车厢号。
<?php
$compartment = "1";
/* HERE I NEED SOME SCRIPT TO FIND THE EXTENSION OF THE FILE NAME $compartment AND TO SAVE THAT AS A VARIABLE NAMED 'EXTENSION'.*/
if (file_exists($compartment.$extension))
echo "$compartment.$extension exists!
else
echo "No file name exists that is called $compartment. Regardless of extension."
?>
<?php
$compartment = "2";
/* HERE I NEED SOME SCRIPT TO FIND THE EXTENSION OF THE FILE NAME $compartment AND TO SAVE THAT AS A VARIABLE NAMED 'EXTENSION'.*/
if (file_exists($$compartment.$extension))
echo "$compartment.$extension exists!
else
echo "No file name exists that is called $compartment. Regardless of extension."
?>
谢谢!
【问题讨论】:
如果有多个怎么办?无论如何,您都可以使用 glob。 你希望这个发现做什么?仅搜索 1 个特定文件夹还是搜索从特定文件夹开始的所有文件夹?部分匹配是否符合条件还是应该完整的文件名匹配?无论如何,您可能需要检查 PHP 参考中的 opendir 和 readdir 函数 只有一个具有该名称的文件,所以我不必担心多个匹配项。不应返回部分匹配项。 IE。我想分别返回 1 和 13。 【参考方案1】:你需要glob()
。
$compartment = "2";
$files = glob("/path/to/files/$compartment.*"); // Will find 2.txt, 2.php, 2.gif
// Process through each file in the list
// and output its extension
if (count($files) > 0)
foreach ($files as $file)
$info = pathinfo($file);
echo "File found: extension ".$info["extension"]."<br>";
else
echo "No file name exists called $compartment. Regardless of extension."
顺便说一句,你在上面所做的就是在哭泣。不要重复你的代码块,但将其中一个包装到这个:
$compartments = array(1, 3, 6, 9); // or whichever compartments
// you wish to run through
foreach ($compartments as $compartment)
..... insert code here .......
【讨论】:
谢谢。我需要在代码中多次引用“恢复的”文件。这会是个问题吗? @Andy 不,只要您在foreach $files as $file
循环内执行此操作即可。 (你也可以在它之外使用变量,但是你必须选择哪一个。)【参考方案2】:
向上看:
glob — 查找与模式匹配的路径名 fnmatch — 将文件名与模式匹配 pathinfo — 返回有关文件路径的信息【讨论】:
以上是关于查找具有特定名称和任何扩展名的文件的主要内容,如果未能解决你的问题,请参考以下文章