Php 扫描“我的Web服务器”中的目录并列出其所有图像

Php 扫描“我的Web服务器”中的目录并列出其所有图像,php,image,file,filesystems,media,Php,Image,File,Filesystems,Media,在我的Web服务器上的目录路径sites/default/files/app images下,我有以下图像: image-1.png image-2.png 我正在尝试运行Cron以: 扫描此目录 检查目录是否为空 循环浏览所有可用图像,并针对每个图像;获取其文件名 删除该图像 到目前为止,我做了以下工作: $Directory = new \RecursiveDirectoryIterator('sites/default/files/app-images'); $Iterator = n

在我的Web服务器上的目录路径
sites/default/files/app images
下,我有以下图像:

  • image-1.png
  • image-2.png
我正在尝试运行Cron以:

  • 扫描此目录
  • 检查目录是否为空
  • 循环浏览所有可用图像,并针对每个图像;获取其文件名
  • 删除该图像
  • 到目前为止,我做了以下工作:

    $Directory = new \RecursiveDirectoryIterator('sites/default/files/app-images');
    $Iterator = new \RecursiveIteratorIterator($Directory);
    $Regex = new \RegexIterator($Iterator, '/^.+\.png$/i', \RecursiveRegexIterator::GET_MATCH);
    foreach ($Regex as $info) {
      $filename = $Regex->getFilename();
    // Display a message    
    \Drupal::messenger()->addWarning(t("$filename"));
    }
    
  • 就性能而言,这是最好的方法吗

  • 我正在获取文件扩展名为
    image-1.png
    image-2.png
    的图像的文件名,但是如何获取没有文件扩展名的文件名,例如:
    image-1
    image-2

  • 获取图像名称后如何删除图像?我尝试了
    取消链接($filename)但是没有用,图像仍然存在于目录中

  • 有人能帮我找到正确的方向吗


    谢谢

    到目前为止,您都尝试了什么?递归DirectoryIterator是您需要的。请你检查一下问题的更新,谢谢