gpt4 book ai didi

php - 如何在不覆盖目标文件的情况下复制文件?

转载 作者:可可西里 更新时间:2023-11-01 00:22:59 25 4
gpt4 key购买 nike

我做的脚本是。

<?php

$source_file = 'http://www.domain.tld/directory/img.png';
$dest_file = '/home/user/public_html/directory/directory/img.png';

copy($source_file, $dest_file);

?>

我需要在每次脚本运行时不删除和重新上传该图像。我要么希望它是 img1.png、img2.png、img3.png 等,要么是 img(Date,Time).png、img(Date,Time).png 等。这可能吗,如果是的话,怎么做我应该这样做吗?

最佳答案

如果您担心覆盖文件,您可以只放入时间戳以确保唯一性:

$dest_file = '/home/user/public_html/directory/directory/img.png';

// /home/user/public_html/directory/directory/img1354386279.png
$dest_file = preg_replace("/\.[^\.]{3,4}$/i", time() . "$0", $dest_file);

如果你想要更简单的数字,你可以采取稍微多一些任务的路线并更改目标文件名,只要具有该名称的文件已经存在:

$file = "http://i.imgur.com/Z92wU.png";
$dest = "nine-guy.png";

while (file_exists($dest)) {
$dest = preg_replace_callback("/(\d+)?(\.[^\.]+)$/", function ($m) {
return ($m[1] + 1) . $m[2];
}, $dest);
}

copy($file, $dest);

您可能需要使用更高版本的 PHP 来进行匿名函数回调;我使用 5.3.10 进行了测试,一切正常。

关于php - 如何在不覆盖目标文件的情况下复制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13661842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com