php - 使用 PHP 从文本文件列表中删除多个文件及其名称变体
问题描述
我需要创建一个脚本来删除 wordpress 目录中的一堆图像。您可能已经知道,单个图像文件可以有多个变体,具体取决于图像的渲染方式。
无论如何,我有一个文本文件中的图像列表,其中包含以下内容:
wp-content/uploads/2018/09/L_14BQ-FK1
wp-content/uploads/2018/09/L_15EKP160VIBROBT-KIT
wp-content/uploads/2018/09/L_29DS15172GB
wp-content/uploads/2018/09/L_29DS18172GB
wp-content/uploads/2018/09/L_29DS2415
例如,我需要删除 L_14BQ-FK1.jpg 及其变体,例如 L_14BQ-FK1-100x100.jpg、L_14BQ-FK1-200x200.jpg 等。
到目前为止,我已经在 foreach 中尝试了 foreach,但它不起作用:
$list = file('list.txt');
if ($list === false) {
die('Cannot open file');
}
foreach($list as $file){
$theFile = glob($file.'*.jpg');
foreach ($theFile as $single){
echo $single."<br>";
}
}
令人惊讶的是,回声只产生了最后一个列表及其变体,L_29DS2415-100x100.jpg、L_29DS2415-100x200.jpg 等
有人可以帮忙吗?
解决方案
阅读 php.net 上的文件手册,我刚刚意识到从函数 FILE 返回的数组包含新行,因此通过添加 'FILE_IGNORE_NEW_LINES | 的标志来修改我的原始代码。FILE_SKIP_EMPTY_LINES' 完美运行。
所以最终的代码将是:
$list = file('list.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if ($list === false) {
die('Cannot open file');
}
foreach($list as $file){
$theFile = glob($file.'*.jpg');
foreach ($theFile as $single){
echo $single."<br>";
}
}
推荐阅读
- javascript - parse2升级javascript承诺问题
- gcc - 如何在 gcc 剥离期间保留符号?
- c - 如何读取 fseeked 的文件?
- javascript - Ajax 验证在 html 元素内重复 html 页面
- javascript - Gsap 无法与打字稿一起正常工作
- c++ - C ++中数组的大小是否灵活?
- python - 通过pandas列按字符串选择行(有条件)
- python - 具有无法识别的时间格式的 Pandas MultiIndex - 如何转换时间和应用计算
- r - 在带有 conda 环境的 Visual Studio Code 中使用 R
- c# - HttpClient 403 捕获过期的 API 令牌 .Net Core 3.1