php删除目录中的单个文件

php删除目录中的单个文件,php,Php,我从这个链接获得了php列表目录脚本。 如何从directoy中删除单个文件?我试图取消链接,但它删除了该目录中的所有文件。这是我从链接中得到的简短代码 while ($file = readdir ($hDir)) { if ( ($file != '.') && ($file != '..') && (substr($file, 0, 1) != '.') && (strtolower($file) != strtolower(sub

我从这个链接获得了php列表目录脚本。 如何从directoy中删除单个文件?我试图取消链接,但它删除了该目录中的所有文件。这是我从链接中得到的简短代码

while ($file = readdir ($hDir)) {
if ( ($file != '.') && ($file != '..') && (substr($file, 0, 1) != '.') &&
     (strtolower($file) != strtolower(substr($DescFile, -(strlen($file))))) &&
     (!IsFileExcluded($Directory.'/'.$file))
   ) {

  array_push($FilesArray, array('FileName' => $file,
                                'IsDir' => is_dir($Directory.'/'.$file),
                                'FileSize' => filesize($Directory.'/'.$file),
                                'FileTime' => filemtime($Directory.'/'.$file)
                                ));
}
}
$BaseDir = '../_cron/backup';
$Directory = $BaseDir;

foreach($FilesArray as $file) {
  $FileLink = $Directory.'/'.$file['FileName'];
  if ($OpenFileInNewTab) $LinkTarget = ' target="_blank"'; else $LinkTarget = '';
    echo '<a href="'.$FileLink.'">'.$FileName.'</a>';
    echo '<a href="'.unlink($FileLink).'"><img src="images/icons/delete.gif"></a></td>';
  }
}
while($file=readdir($hDir)){
如果($file!='.')&&($file!='.')&&($substr($file,0,1)!='.)&&
(strtolower($file)!=strtolower(substr($DescFile,-(strlen($file‘)!))&&
(!IsFileExcluded($Directory.'/'.$file))
) {
array\u push($filesaray,array('FileName'=>$file,
'IsDir'=>是_dir($Directory./'.$file),
'FileSize'=>FileSize($Directory.'/'.$file),
'FileTime'=>filemtime($Directory.'/'.$file)
));
}
}
$BaseDir='../\u cron/backup';
$Directory=$BaseDir;
foreach($FilesArray作为$file){
$FileLink=$Directory.'/.$file['FileName'];
如果($OpenFileInNewTab)$LinkTarget='target=“_blank””;否则$LinkTarget='';
回声';
回声';
}
}
列表目录文件夹调用:备份。
取消链接($FileLink)
中,当我悬停时,链接已更改为另一个文件夹到admin文件夹?

是适用于您的用例的正确php函数

unlink('/path/to/file');

如果没有更多信息,我无法告诉您在使用它时出现了什么问题。

如果您想删除单个文件,您必须按照您发现的那样使用该功能

该函数将删除您作为参数传递给它的内容:因此,由您将路径传递给它必须删除的文件


例如,您将使用如下内容:

unlink('/path/to/dir/filename');
unlink('path_to_filename')将一次删除一个文件

若目录中的所有文件都消失了,则表示您列出了所有文件并在循环中逐个删除

您不能在同一页中反删除。你必须处理其他页面。创建一个名为
deletepage.php
的页面,该页面将包含要删除的脚本,并以“file”作为参数链接到该页面

foreach($FilesArray as $file)
{
    $FileLink = $Directory.'/'.$file['FileName'];

    if($OpenFileInNewTab) $LinkTarget = ' target="_blank"'; 
    else $LinkTarget = '';

    echo '<a href="'.$FileLink.'">'.$FileName.'</a>';
    echo '<a href="deletepage.php?file='.$fileName.'"><img src="images/icons/delete.gif"></a></td>';        
}
如果您不想导航,那么使用ajax使其变得优雅。

取消链接可以安全地删除单个文件;只需确保要删除的文件实际上是一个文件,而不是一个目录(“.”或“…”)


您下载的脚本列出了指定文件夹的内容。您可能将unlink-call放在一个
循环中,而
循环列出文件

编辑-现在您已发布代码:

echo '<a href="'.unlink($FileLink).'"><img src="images/icons/delete.gif"></a></td>';
您不应该将此脚本的路径传递给文件,然后将其删除,因为恶意生物可能会使用它删除所有内容或做其他邪恶的事情。



这就是它

只要你能使用它

    $sql="select * from tbl_publication where id='5'";
    $result=mysql_query($sql);
    $res=mysql_fetch_array($result);
    //Getting File Name From DB
    $pdfname = $res1['pdfname'];
    //pdf is directory where file exist
    unlink("pdf/".$pdfname);
//此代码由我(Helio Barbosa)测试
//此目录(../backup)仅供试用。
//有必要创建它并将文件放入其中。
$hDir='../backup';
如果($handle=opendir($hDir)){
echo“Manipulador de diretório:$handle\n”;
回声“Arquivos:\n”;
/*瓦雷尔和迪雷托·里奥的关系形式*/
/*这是在目录中查找文件的正确形式*/
while(false!=($file=readdir($handle))){
//echo($file.“
”); $filepath=$hDir.“/”$file; //echo($filepath“
”); 如果(是_文件($filepath)) { echo(“删除:“.$file.”
”; 取消链接($filepath); } } closedir($handle); }
你能发布你尝试过的代码吗?你在循环中使用了unlink,所以循环中的所有内容都消失了。@experix知道如何在不删除所有文件的情况下将
unlink
放进去吗。。。我确实在5分钟内看到了更新,你创造了一个巨大的安全漏洞。人们可以删除任何他们想要的,如果他们只是摆弄
文件
参数。我知道这是一个古老的答案,但这是公认的答案,它不应该。。。你应该经常检查文件是否存在,如果它是一个文件,而不是一个目录,最好检查你要删除的文件的类型。你为什么在回答中引入数据库查询?@NicoHaase这是获取资源的简单示例。最终是删除代码,获取文件只是源代码。预计不会有否决票!您好,欢迎来到苏。也许你可以为你的代码添加一个英文解释,让其他人可以理解?
echo '<a href="'.unlink($FileLink).'"><img src="images/icons/delete.gif"></a></td>';
<a href="/path/to/script.php?delete='. $FileLink .'">delete</a>
    $sql="select * from tbl_publication where id='5'";
    $result=mysql_query($sql);
    $res=mysql_fetch_array($result);
    //Getting File Name From DB
    $pdfname = $res1['pdfname'];
    //pdf is directory where file exist
    unlink("pdf/".$pdfname);