PHP清空一个目录/文件夹

PHP清空一个目录/文件夹,php,Php,假设我有一个名为“temp”的目录,其中有许多自动生成的垃圾文件。如何使用PHP每周自动清除/清空一次“temp”目录?我不知道里面有什么文件。我只想清空目录。使用cron调用将删除整个文件夹的脚本,然后再次调用mkdir。使用cron调用将删除整个文件夹的脚本,然后再次调用mkdir。首先需要cron job和php script删除文件。 这里是php脚本: $fileToDelete = glob('path/to/temp/*'); foreach($fileToDelete as $f

假设我有一个名为“temp”的目录,其中有许多自动生成的垃圾文件。如何使用PHP每周自动清除/清空一次“temp”目录?我不知道里面有什么文件。我只想清空目录。

使用cron调用将删除整个文件夹的脚本,然后再次调用mkdir。

使用cron调用将删除整个文件夹的脚本,然后再次调用mkdir。

首先需要
cron job
php script
删除文件。 这里是php脚本:

$fileToDelete = glob('path/to/temp/*');
foreach($fileToDelete as $file){ 
  if(is_file($file))
    unlink($file); 
}
之后,您需要配置cron以执行此文件,例如每天或根据需要执行:

0 0 * * 0 /path/script.php //will execute every week

首先,您需要
cron作业
php脚本
来擦除文件。 这里是php脚本:

$fileToDelete = glob('path/to/temp/*');
foreach($fileToDelete as $file){ 
  if(is_file($file))
    unlink($file); 
}
之后,您需要配置cron以执行此文件,例如每天或根据需要执行:

0 0 * * 0 /path/script.php //will execute every week

您可以使用这样的代码片段,如果您的应用程序在基于Linux的系统上,则可以运行cron作业

$files = glob('path/to/folder/*'); // get all file names present in folder
foreach($files as $file){ // iterate files
  if(is_file($file))
    unlink($file); // delete the file
}

您可以使用这样的代码片段,如果您的应用程序在基于Linux的系统上,则可以运行cron作业

$files = glob('path/to/folder/*'); // get all file names present in folder
foreach($files as $file){ // iterate files
  if(is_file($file))
    unlink($file); // delete the file
}

在$path中提供文件夹的路径

$path = $_SERVER['DOCUMENT_ROOT'].'/work/removegolder/'; // path of your directory 
header( 'Content-type: text/plain' ); // plain text for easy display

// preconditon: $dir ends with a forward slash (/) and is a valid directory
// postcondition: $dir and all it's sub-directories are recursively
// searched through for .svn directories. If a .svn directory is found,
// it is deleted to remove any security holes. 
function removeSVN( $dir ) {
    //echo "Searching: $dir\n\t";

    $flag = false; // haven't found .svn directory
    $svn = $dir . 'foldername';

    if( is_dir( $svn ) ) {
        if( !chmod( $svn, 0777 ) )
            echo "File permissions could not be changed (this may or may not be a problem--check the statement below).\n\t"; // if the permissions were already 777, this is not a problem

        delTree( $svn ); // remove the  directory with a helper function

        if( is_dir( $svn ) ) // deleting failed
            echo "Failed to delete $svn due to file permissions.";
        else
            echo "Successfully deleted $svn from the file system.";

        $flag = true; // found directory
    }

    if( !$flag ) // no .svn directory
        echo 'No  directory found.';
    echo "\n\n";

    $handle = opendir( $dir );
    while( false !== ( $file = readdir( $handle ) ) ) {
        if( $file == '.' || $file == '..' ) // don't get lost by recursively going through the current or top directory
            continue;

        if( is_dir( $dir . $file ) )
            removeSVN( $dir . $file . '/' ); // apply the SVN removal for sub directories
    }
}

// precondition: $dir is a valid directory
// postcondition: $dir and all it's contents are removed
// simple function found at http://www.php.net/manual/en/function.rmdir.php#93836
function delTree( $dir ) {
    $files = glob( $dir . '*', GLOB_MARK ); // find all files in the directory

    foreach( $files as $file ) {
        if( substr( $file, -1 ) == '/')
            delTree( $file ); // recursively apply this to sub directories
        else
            unlink( $file );
    }

    if ( is_dir( $dir ) ){
                //echo $dir;
               // die;
        //rmdir( $dir ); // remove the directory itself (rmdir only removes a directory once it is empty)

            }
      }

// remove all  directories in the 
// current directory and sub directories 
// (recursively applied)
removeSVN($path);

在$path中提供文件夹的路径

$path = $_SERVER['DOCUMENT_ROOT'].'/work/removegolder/'; // path of your directory 
header( 'Content-type: text/plain' ); // plain text for easy display

// preconditon: $dir ends with a forward slash (/) and is a valid directory
// postcondition: $dir and all it's sub-directories are recursively
// searched through for .svn directories. If a .svn directory is found,
// it is deleted to remove any security holes. 
function removeSVN( $dir ) {
    //echo "Searching: $dir\n\t";

    $flag = false; // haven't found .svn directory
    $svn = $dir . 'foldername';

    if( is_dir( $svn ) ) {
        if( !chmod( $svn, 0777 ) )
            echo "File permissions could not be changed (this may or may not be a problem--check the statement below).\n\t"; // if the permissions were already 777, this is not a problem

        delTree( $svn ); // remove the  directory with a helper function

        if( is_dir( $svn ) ) // deleting failed
            echo "Failed to delete $svn due to file permissions.";
        else
            echo "Successfully deleted $svn from the file system.";

        $flag = true; // found directory
    }

    if( !$flag ) // no .svn directory
        echo 'No  directory found.';
    echo "\n\n";

    $handle = opendir( $dir );
    while( false !== ( $file = readdir( $handle ) ) ) {
        if( $file == '.' || $file == '..' ) // don't get lost by recursively going through the current or top directory
            continue;

        if( is_dir( $dir . $file ) )
            removeSVN( $dir . $file . '/' ); // apply the SVN removal for sub directories
    }
}

// precondition: $dir is a valid directory
// postcondition: $dir and all it's contents are removed
// simple function found at http://www.php.net/manual/en/function.rmdir.php#93836
function delTree( $dir ) {
    $files = glob( $dir . '*', GLOB_MARK ); // find all files in the directory

    foreach( $files as $file ) {
        if( substr( $file, -1 ) == '/')
            delTree( $file ); // recursively apply this to sub directories
        else
            unlink( $file );
    }

    if ( is_dir( $dir ) ){
                //echo $dir;
               // die;
        //rmdir( $dir ); // remove the directory itself (rmdir only removes a directory once it is empty)

            }
      }

// remove all  directories in the 
// current directory and sub directories 
// (recursively applied)
removeSVN($path);

@谢谢你@谢谢你!