Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.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从通过HTML发布的文件列表中取消链接_Php_Html - Fatal编程技术网

PHP从通过HTML发布的文件列表中取消链接

PHP从通过HTML发布的文件列表中取消链接,php,html,Php,Html,我正在尝试构建一个HTML表单,它接受一个文件列表,并将其发送到php脚本以删除它。我在这里有一个非常简单的事情,HTML表单接受文件名: <form method="post" action="unlink.php"> File list<br /> <textarea cols="40" rows="10" name="files"></textarea><br /> <input type="submit" value="S

我正在尝试构建一个HTML表单,它接受一个文件列表,并将其发送到php脚本以删除它。我在这里有一个非常简单的事情,HTML表单接受文件名:

<form method="post" action="unlink.php">
File list<br />
<textarea cols="40" rows="10" name="files"></textarea><br />
<input type="submit" value="Send" />
</form>

文件列表

php检索并删除这些文件:

<?php

$files = $_POST['files'];

$delete = unlink($files);

if ($delete)
{
    echo "Successfully deleted files";
}

尝试对需要取消链接的项目数组使用
foreach
循环

foreach($array as $item){
 unlink($item);
}

看看如何将字符串分割成块(在文件名中,必须定义一个delimter,例如空格或换行符;输入多个文件名的用户也应该知道这一点!)。之后,您可以使用foreach遍历上一个explode命令返回的数组

尝试拆分文件名并使用while循环遍历所有文件名

$files = $_POST['files'];
$allfiles = explode(" ", $files); //Separates the file names by spaces

$i = 0;
while ($allfiles[$i] != null) { //A loop to delete all of the files
  $delete = unlink($allfiles[$i]);
  if ($delete)
  {
      echo "Successfully deleted file";
  }
  $i++;
}
text区域值(每行一个文件):

PHP: 拆分文件名,循环它们并执行所需操作

if(isset($_POST['files'])){
    $files = $_POST['files'];
    $list = explode("\r\n", $files);

    foreach($list as $file){
        if(@unlink($file)){
           echo "$file deleted<br />";
        }
        else{
           echo "$file not deleted<br />";
        }
    }
}
if(isset($\u POST['files'])){
$files=$_POST['files'];
$list=分解(“\r\n”,$files);
foreach($列表为$文件){
如果(@unlink($file)){
回显“$file deleted
”; } 否则{ 回显“$文件未删除
”; } } }
使用
数组()
并在循环中使用
取消链接()
foreach
如何在文本区域中输入文件名?谢谢大家。我现在尝试了您的示例Spencer,但是,它现在似乎跳过了文件扩展名。我尝试将1.txt和2.txt作为文件名提交,但出现了错误:警告:取消链接(1):没有这样的文件或目录,也不知道为什么会这样?它将文本按空格分隔。所以你必须像这样把它放进1.txt 2.txt 3.txt等等。。“不”和“啊,是的,我应该仔细看看。也谢谢你!:)
if(isset($_POST['files'])){
    $files = $_POST['files'];
    $list = explode("\r\n", $files);

    foreach($list as $file){
        if(@unlink($file)){
           echo "$file deleted<br />";
        }
        else{
           echo "$file not deleted<br />";
        }
    }
}