2个文件夹。如果文件夹B中的文件不存在,则从文件夹A中取出文件。
我们有文件夹A
fotos
->pic1.png
->pic2.png
theme
->reset.css
->index.php
->folder
->...
index.php
style.css
和文件夹B
用户保存个人更改的位置。所以这里的文件从1变为全部,例如她/他只更改了2个文件:
fotos
->pic1.png
->style.css
如果文件夹B中没有文件/文件夹,我们不想复制整个文件夹。
如何以递归方式完成此操作,是否有与之相关的术语?
我会使用RecursiveDirectoryIterator但是如何:将两个目录加载到数组中,然后将优先级合并到文件夹B不起作用,因为它们具有不同的索引。 最后,复制有关资源的整个文件夹可能更好(空间不像内存那么大吗?)
编辑:
不同的目标,但有些并行here。到目前为止无法让它工作,谢谢你的回答。我更喜欢mod_rewrite ...如果它是一个有效的潜在解决方案...在使用太资源密集的PHP函数之前。
编辑2:
mod_rewrite甚至可以实现这一点吗?我想动态地制作它,因为它应该适用于所有用户。 结构如下或必要时可以更改:
FOLDER A:
www/sources/folder A1
www/sources/folder A2
...
FOLDER B: (this are the user's individual Folders)
www/userfiles/folder A1/folder B1
www/userfiles/folder A1/folder B2
...
www/userfiles/folder A2/folder B1
www/userfiles/folder A2/folder B2
...
感谢任何光明的人......请。
答案 0 :(得分:0)
如果你有每个图片请求指向输出它们的php脚本,你可以在尝试输出文件之前使用一个简单的file_exists语句。
如果你真的很懒,可以在include路径(http://www.php.net/manual/en/ini.core.php#ini.include-path)中添加两个文件夹,并使用file_get内容并将use_include_path标志设置为true来加载图像。它会先尝试在一个文件夹中打开文件,然后再打开另一个文件夹。但要小心,因为如果它没有在那些中找到它,它将开始查看其他包含文件夹,一些不道德的用户可能会尝试利用它。
答案 1 :(得分:-2)
获取文件夹A上的文件
转到文件夹B的路径
if(!file_exists($file)){
//set the path to get the files in the folder or merge the unique files
}
如果需要,可以使用scan_dir或任何其他功能