我坚持以下,所以任何帮助将不胜感激。
我有一个如下文件夹树:
images/collections/
在collections文件夹中可能有许多子文件夹
images/collections/collection1, images/collections/collection2
图像命名为
imageProductCode-something.jpg
我要做的是将一个作为我的产品代码的变量传递给一个脚本,然后在任何文件夹中找到该文件并返回其路径......
images/collections/collection3/imageProductCode-something.jpg
答案 0 :(得分:0)
您可以查看所有收藏品:
$collections = array('collection1', 'collection2', 'collection3');
foreach ($collections as $collection) {
if (file_exists('/path/to/collections/'.$collection.'/'.$productCode.'.jpg')) {
... do your thing ...
break;
}
}
根据目录的大小,创建数据库(flatfile或MySQL)以查找特定产品代码的图像位置可能会更快。
答案 1 :(得分:0)
您可以使用RecursiveDirectoryIterator
function getImageDirectory($iId) {
$oDirectory = new RecursiveDirectoryIterator("/path/to/images/");
$oIterator = new RecursiveIteratorIterator($oDirectory);
foreach($oIterator as $oFile) {
if ($oFile->getFilename() == 'imageProductCode-' . $iId . '.jpg') {
return $oFile->getPath();
}
}
}
答案 2 :(得分:0)
如果您使用的是< 5.3,您可能需要自己编写递归。 您想要遵循的主要方法:
从图片的根目录开始,检查每个条目。如果是目录,请检查目录。 看起来很多工作,所以如果您正在查看大型目录和图像集合,您可能需要查看unix命令或db链接,如上所述。
另一种方法是将目录逻辑地连接到图像,以便您可以从图像的名称(或其他属性)中查看要查找的目录。
祝你好运,伊沙伊