我刚刚在目录中观看了这些视频,并希望能够修改代码。
http://www.youtube.com/watch?v=dHq1MNnhSzU - 第1部分
http://www.youtube.com/watch?v=aL-tOG8zGcQ - 第2部分
视频显示的内容几乎就是我想要的内容,但我想到的系统是照片库。
我计划建立一个名为画廊的文件夹,其中包含其他文件夹,每个文件夹对应不同的照片集,即
我想帮助修改代码,以便它可以识别和显示一个页面上的目录。这样我就可以将这些目录转换为链接,将您带到相册本身,并使用原始代码从那里提取图像。
对于那些想要视频代码的人来说,这是
$dir = 'galleries';
$file_display = array('bmp', 'gif', 'jpg', 'jpeg', 'png');
if (file_exists($dir) == false) {
echo 'Directory \'', $dir , '\' not found!';
} else {
$dir_contents = scandir($dir);
foreach ($dir_contents as $file) {
$file_type = strtolower(end(explode('.', $file)));
if ($file !== '.' && $file !== '..' && in_array($file_type, $file_display) == true) {
echo '<img src="', $dir, '/', $file, '" alt="', $file, '" />';
}
}
}
答案 0 :(得分:0)
您需要使用这样的函数列出所有目录:
function getDirectory( $path = '.', $level = 0 ){
$ignore = array( 'cgi-bin', '.', '..' );
// Directories to ignore when listing output. Many hosts
// will deny PHP access to the cgi-bin.
$dh = @opendir( $path );
// Open the directory to the handle $dh
while( false !== ( $file = readdir( $dh ) ) ){
// Loop through the directory
if( !in_array( $file, $ignore ) ){
// Check that this file is not to be ignored
$spaces = str_repeat( ' ', ( $level * 4 ) );
// Just to add spacing to the list, to better
// show the directory tree.
if( is_dir( "$path/$file" ) ){
// Its a directory, so we need to keep reading down...
echo "<strong>$spaces $file</strong><br />";
getDirectory( "$path/$file", ($level+1) );
// Re-call this same function but on a new directory.
// this is what makes function recursive.
} else {
echo "$spaces $file<br />";
// Just print out the filename
}
}
}
closedir( $dh );
// Close the directory handle
}
然后,将用户选择的目录作为$ dir变量传递给您当前拥有的函数。
答案 1 :(得分:0)
我现在无法测试任何代码,但我们希望在这里找到解决方案:
$directory = new RecursiveDirectoryIterator('path/galleries');
$iterator = new RecursiveIteratorIterator($directory);
$regex = new RegexIterator($iterator, '/^.+\.(bmp|gif|jpg|jpeg|png)$/i', RecursiveRegexIterator::GET_MATCH);
SPL很强大,应该多用。
RecursiveDirectoryIterator 提供了一个用于递归迭代文件系统目录的接口。 http://www.php.net/manual/en/class.recursivedirectoryiterator.php