Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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 foreach循环中删除文件_Php_Loops_Foreach_Delete File - Fatal编程技术网

如何在PHP foreach循环中删除文件

如何在PHP foreach循环中删除文件,php,loops,foreach,delete-file,Php,Loops,Foreach,Delete File,基本上,我有一个网站,列出了上面目录中的文件,我试图在它旁边做一些“x”链接,点击后,它会从服务器上删除该文件 foreach($logs as $log) { $noext = str_replace(".html", "", $log); $rawlog = str_replace("../", "", $noext); echo "<li><a href='#' onClick='javascript:loadLog

基本上,我有一个网站,列出了上面目录中的文件,我试图在它旁边做一些“x”链接,点击后,它会从服务器上删除该文件

foreach($logs as $log)
    {
        $noext = str_replace(".html", "", $log);
        $rawlog = str_replace("../", "", $noext);
        echo "<li><a href='#' onClick='javascript:loadLog(" . $rawlog . ");LogLoop();'>".$rawlog."</a></li>";
    }
foreach($log为$log)
{
$noext=str_replace(“.html”,”,$log);
$rawlog=str_replace(“../”,“,$noext”);
回声“
  • ”; }
    我不知道如何处理它,我是否可以使用onclick for the X,它以某种方式调用PHP函数来删除所述文件


    非常感谢您的帮助

    使用取消链接功能删除文件。假定var$rawlog是文件的路径:

    unlink($rawlog);
    
    你真的想在单击时删除该文件吗

    假设用户决定,实际上,他们不想删除该文件并再次单击该框


    我建议您将文件标记为删除,然后每周从或类似文件执行一次定时清理。

    您似乎已经具备了AJAX调用的机制(大概这就是
    loadLog
    所做的)。因此,您将保留相同的删除方法:使用文件名作为查询变量,例如在URL中,对服务器进行AJAX调用

    http://my.server/delete.php?file=some.log
    
    然后,服务器端脚本将读取参数并调用
    unlink
    删除文件


    小心:您可能需要确保只有经过身份验证的人员才能真正删除日志!即使如此,上述任何方案都会让用户容易受到CSRF攻击(这是理论上的,但也可能发生;请参阅)。

    $log实际上是我想要删除的内容(完整路径+文件名),但我如何从循环中的链接调用它?在这种情况下,我肯定希望用户能够立即删除它