![](/img/trans.png)
[英]Recursively Capitalize all Files and Directories within a Given Directory PHP or Commandline
[英]Recursively delete files with different names within directories - PHP
我正在使用一个名为ELGG的脚本。 它允许我的成员将图像上传到4兆像素,但会自动将其缩小到定义的大小(宽或高700像素)。 不幸的是,巨大的图像仍然保留在目录中,这使我的服务器停滞不前。 根据是照片还是头像,在过程中会生成一些小图像,我必须小心,将正确的图像留在后面。 这不是一个繁忙的站点,我可以每周运行一个小脚本。
这就是棘手的地方。 我需要保存的文件编号奇怪:
###large.jpg
###medium.jpg
###small.jpg
###tiny.jpg
###topbar.jpg
largethumb#####.jpg
smallthumb#####.jpg
thumb#####.jpg
###的编号似乎是随机的,从2位数到20不等。
我需要删除的文件将是我的成员发布的名称,但还将包含Elgg发布的数字。
该脚本不必花哨。 它只需要删除所有子目录中除上述文件以外的所有文件。
希望有人可以提前帮助和感谢。
您可以使用scandir列出目录中的所有文件。 然后,您可以使用preg_match来选择符合您条件的文件。 最后, 取消链接将删除您作为参数传递的文件。
您也可以使用preg_filter代替preg_match。
像这样循环进入目录:
$image = "pin987414578.png";
$delete = "pin987414578.png"; //keep original name to delete
$image2 = preg_replace("/[^a-z,A-Z.]/", "", $image);
if($image2=="large.png" ||$image2=="medium.png" ||$image2=="small.png" ||)
{
unlink($delete)
}
此样本=结果:pin.png
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.