我有一个文件夹/目录,其中包含许多图像和其他文件夹/目录。
我使用以下代码显示这些文件的预览:
<?php
$images=array();
$dir_handler = opendir('test') or die("Unable to open path");
$i=0;
while($file = readdir($dir_handler))
{
if(is_dir($file))
continue;
else if($file != '.' && $file != '..' && $file != 'index.php')
{
$images[$i]=$file;
$i++;
}
}
sort($images);
for($i=0; $i<sizeof($images); $i++)
{
echo "<a href=".chr(34).$path.$images[$i].chr(34)."><img style='border:1px solid #666666; width:100px;height:100px; margin: 10px;' src='test/".$images[$i]."'/><input type='button' value='nok[]'></a>";
} closedir($dir);
?>
问题是,我想为每个文件(每个图像或文件夹)分配一个单独的按钮,这样通过单击每个按钮,其相应的图像(或文件夹/目录)就会从主文件夹中删除,不再显示为预览。
另一个小问题是上面的代码没有显示文件夹的预览。为什么?任何帮助都将不胜感激。
这里有几个问题。
第一个问题:为什么不显示文件夹预览?这是因为您通过循环$images数组来显示预览,但不向该数组添加目录(请参阅您的代码,检查它是否为_dir,然后调用"continue;")。如果您想包含这些目录,那么您应该将它们包含在$images数组中(或者对它们执行其他操作)。
第二个问题:如何删除?您需要扩展现有的PHP脚本或编写另一个脚本。你可以在删除图标上创建一个链接;链接的href将指向新的(或现有的)PHP脚本,您将把要删除的文件夹或文件作为参数传入。如果是文件夹,则使用rmdir()。如果它是一个文件,则使用unlink()。如果你需要的话,我稍后可以帮你做更多的工作。
如果总是显示图像,则需要检查$images数组值是图像还是文件夹。然后对显示器做一些不同的操作。
要删除文件或文件夹,请分别使用以下功能:
unlink();
rmdir();
http://www.php.net/manual/en/function.rmdir.php
http://php.net/manual/en/function.unlink.php
要在您的图像更改代码之前添加文件夹列表:
<?php
$images=array();
$folders = array();
$dir_handler = opendir('test') or die("Unable to open path");
$i=0;
while($file = readdir($dir_handler))
{
if(is_dir($file)) {
$folders[count($folders)] = $file;
}
else if($file != '.' && $file != '..' && $file != 'index.php')
{
$images[$i]=$file;
$i++;
}
}
sort($images);
foreach($folders as $folder){
echo "<a href='#'>$folder</a>";
}
for($i=0; $i<sizeof($images); $i++)
{
echo "<a href=".chr(34).$path.$images[$i].chr(34)."><img style='border:1px solid #666666; width:100px;height:100px; margin: 10px;' src='test/".$images[$i]."'/><input type='button' value='nok[]'></a>";
}
closedir($dir);
?>
然后,您所要做的就是在视图中构建文件夹的视觉元素,并链接到一个函数,该函数将在需要的地方执行unlink()和rmdir()。