php 下载时重命名文件

php rename files when downloading

遇到问题并不断出错,目前有一个这种格式的数组....

$espn_ar["pid_6254"] = "2977742";
$espn_ar["pid_8269"] = "9614";

我正在使用它创建 url 路径来下载一些图像并命名它们

foreach ($espn_ar as $value){
    $imageUrl = "https://a.espncdn.com/combiner/i?img=/i/headshots/nfl/players/full/$value.png&h=107&w=80&scale=crop";
    $imageName = "images/mfl_.$value.png";
    $imageFile = file_get_contents($imageUrl);
    file_put_contents($imageName, $imageFile);
}

使用上面的数组示例命名文件

mfl_2977742.png
mfl_9614.png

但我希望文件以每个数组项中“pid_”后面的值命名,所以我想要的文件名是

mfl_6254.png
mfl_8269.png

使用我的示例,谁能告诉我如何在将每个图像命名为“pid_”后的数字时更改值

在您的 foreach 循环中包含密钥并提取您的文件名的编号

foreach ($espn_ar as $key => $value) {
    $imageName = sprintf('images/mfl_%s.png', str_replace('pid_', '', $key));
  
    // etc
}

演示~https://3v4l.org/FgMi2