Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php删除文件-下拉列表_Php_Html_Drop Down Menu - Fatal编程技术网

使用php删除文件-下拉列表

使用php删除文件-下拉列表,php,html,drop-down-menu,Php,Html,Drop Down Menu,这次的任务略有不同,我希望通过单击下拉选项(调用文件名)删除特定目录中的文件,然后单击提交按钮 <?php $myFile = "testFile.txt"; unlink($myFile); ?> 我认为上面的代码就是我所需要的。但是,我将“testFile.txt”替换为以下内容: <?php $myFile = ?><html>Dropdown code here to list all files in directory</html>

这次的任务略有不同,我希望通过单击下拉选项(调用文件名)删除特定目录中的文件,然后单击提交按钮

<?php
$myFile = "testFile.txt";
unlink($myFile);
?>

我认为上面的代码就是我所需要的。但是,我将“testFile.txt”替换为以下内容:

<?php $myFile = ?><html>Dropdown code here to list all files in directory</html><?php ;    unlink($myFile);
    ?>
此处的下拉代码列出目录中的所有文件
我还在编辑和删减这个片段,如果回复需要一段时间,我很抱歉

编辑:我想知道你是否可以帮我创建它,这样它就是一个包含所有上传到目录/uploads/的文件的下拉框,这样我就可以在不搜索的情况下删除它们

提前谢谢大家

编辑:

好的,经过一些帮助,我已经做到了这一点:

<?php
$path = "uploads/";
$handle = opendir($path);   

while ($file = readdir($handle)) {
    if (substr($file,0,1) != ".") {
    echo "<option value ='$file'></option>";
    }   
}
closedir($handle);  
?>

这里有一种方法-它可能并不完美,我还没有测试过它

dir将为您获取目录中的文件列表,您可以使用该列表在PHP中填充选项列表,并将其回显到HTML页面

PHP:

$d=dir(“myDirectory”);
$files=array();
while(false!==($entry=$d->read()){
如果($entry==”。| |$entry==”..)继续;
$files[]='.$entry';
}
$options=内爆(“”,$files);
HTML:


然后,在用户提交表单后,可以从$\u POST或$\u get数组中获取文件


希望这能有所帮助。

迈克,真不敢相信我错过了!以上编辑。谢谢好吧,把它拆开。首先,您需要获得目录中文件的列表。然后,您需要将其呈现给用户。然后你需要弄清楚他们选择了哪一个(cough*$\u POSTcough*),然后你需要删除它。你基本上是要求我们在这里给你写一个完整的系统。很抱歉,在你的印象中,我希望你写一个完整的系统。我一点也不想那样。只是想知道该往哪个方向走。好吧,看看我帖子的其余部分;)。看看
readdir
。你必须完全按照slugonamission所写的去做:把你复杂的问题分解成更容易解决的小问题。那么,您的代码在哪里可以获取目录中的文件列表?你必须告诉我们你试过什么,不要问“我想要那个,给我所有的代码”这样的问题。你好,加雷斯,谢谢你的回复。我不确定我的回答是否正确。我最初用HTML制作表单时认为是正确的:
删除脚本:

这在我的索引页上。mydelete.php是您提供的代码,但myDirectory是“uploads/”。我还添加了一个echo。我发布的代码不太完整-您还需要检查$\u POST数组以查看表单是否已提交,在这种情况下,您有要使用unlink($filname)命令删除的文件名。您需要遵循的步骤是:列出文件,构造选项列表(我提供的PHP代码),将选项列表放在页面上的一个表单中(我提供的伪HTML),检查PHP脚本中的$\u POST数组,如果发现用户已提交,请使用取消链接。基本上,您需要添加类似于
if(isset($\u POST['file\u delete']){unlink($\u POST['file\u delete']);}
嘿,Gareth,我更改了我原来的帖子,我相信这会使您的代码更容易理解和实现。它在下拉列表中不起作用,但是如果我回显$File,它就起作用了。我会把这件事弄得一团糟,然后再打给你。再次感谢Gareth:)嗨-
echo.“$file.”。但这并不是真正的问题。如果您将HTML与PHP放在同一个文件中(您可以在同一个文件中“跳入”和“跳出”PHP,请参见示例),那么我给您的HTML代码将成功地向您显示选项列表。嘿,Gareth,成功了!:)现在我要做的就是嵌入删除文件选项。我现在就尝试一下。你帮了大忙。谢谢你!
$d = dir("myDirectory");

$files = array();
while (false !== ($entry = $d->read())) {
    if($entry == '.' || $entry == '..') continue;
    $files[] = '<option value="'.$entry.'">'.$entry.'</option>';
}

$options = implode('',$files);
<form...>
    <select name="file_delete"><?= $options;?></select>
    <input type="submit"... />
</form>