PHP函数,用于按顺序/唯一名称保存图像



我正在尝试创建一个php函数,该函数将第一个上传的图像命名为a.png,下一个为b.png,并且在完成字母和数字后,它将继续为:aa.png,ab.png,ect(完成后扩展字符串大小)。我希望有一个字符数组按顺序排列,而不仅仅是字母表:

$charset = 'abcdefghijklmnopqrstuvwxyz';
$charset .= '0123456789';
$charset .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

它将存储最后一个图像名称(ect ab3.png),以便下次运行时可以在 ab4.png 继续。

有谁知道或有这样的功能?或者你们能帮帮我吗?

你有特别的理由想要这样做吗?或者您是否正在尝试想出一种创建唯一文件名的方法?如果是后者,那么看看PHP的uniqid函数。

在这种情况下,怎么样,它不能满足您的所有要求,但会让您更接近:

function createId($numId) {
    $result = '';
    $mod = 26;
    $quotient = $numId;
    while ($quotient >= 0) {
        $result .= chr(65 + ($quotient % $mod));
        $quotient = $quotient / $mod - 1;
    }
    return $result;
}

并使用以下调用:

print createId(0) . "n";
print createId(25) . "n";
print createId(26) . "n";
print createId(8) . "n";
print createId(9876) . "n";

给你:

一个

Z

机 管 局

赢得

只是按照你的要求做了一些草率的事情。

$id = 128;
$charset = 'abcdefghijklmnopqrstuvwxyz';
$charset .= '0123456789';
$charset .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$len = strlen($charset);
$ret = '';
$tmp = $id;
$it = ceil($tmp / $len);
for($i = 0; $i < $it; $i++) {
    $ret .= $charset[($tmp > $len) ? 0 : $tmp % $len];
    $tmp -= $len;
}

echo $ret;

$id应该是数据库中的增量主 ID。

编辑:不完全是你想要的。没关系,接受丹的解决方案。

最新更新