我在数据库中有一个名字,比如说它的“DFectuoso”和一些遗留系统存储了DFectuoso_randomnameofafile.doc。
现在我想找到所有归档的“DFectuoso”并在PHP页面中显示它们的链接。
从这开始的方法是什么?
答案 0 :(得分:4)
我会尝试将glob()
与readfile()
结合使用。
脱离我的头顶:
$findname = 'DFectuoso';
foreach (glob('/path/to/somewhere/'.$findname.'*') as $file) {
provide_a_link_to($file);
}
并使用readfile()
传递文件。
请记住,如果您使用$_GET
将所选文件传递给用户,请首先清理并验证权限。不要只做readfile($_GET['chosenFile']);
或者你会遇到麻烦!
答案 1 :(得分:2)
一个好方法是使用glob()。
$files = glob("PATH_TO_FILES/DFectuoso_*.doc");
echo "<ul>\n";
foreach($files as $f)
echo '<li><a href="'.$f.'">'.$f."</a></li>\n";
echo "</ul>\n";
答案 2 :(得分:2)
如果它不像查找具有特定前缀的文件那么简单,您可以执行以下操作:
$files = glob('*');
function filter_files($filename) {
// Do any processing you want on the filename here
$file_matches = preg_match('/^DFectuoso.*\.(doc|txt)$/', $filename);
return $file_matches;
}
$found_files = array_filter($files, 'filter_files');