用于按顺序/唯一名称保存图像的PHP函数
我正在尝试创建一个php函数来命名第一个上传的图像:a.png,下一个,b.png,在完成字母表和数字后,它将继续作为:aa.png,ab.png,etc(完成后扩展字符串大小)。我希望有一组字符按顺序排列,而不仅仅是字母表:用于按顺序/唯一名称保存图像的PHP函数,php,function,uniqueidentifier,Php,Function,Uniqueidentifier,我正在尝试创建一个php函数来命名第一个上传的图像:a.png,下一个,b.png,在完成字母表和数字后,它将继续作为:aa.png,ab.png,etc(完成后扩展字符串大小)。我希望有一组字符按顺序排列,而不仅仅是字母表: $charset = 'abcdefghijklmnopqrstuvwxyz'; $charset .= '0123456789'; $charset .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; 它将存储最后一个图像名(ect ab3.png),以
$charset = 'abcdefghijklmnopqrstuvwxyz';
$charset .= '0123456789';
$charset .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
它将存储最后一个图像名(ect ab3.png),以便下次运行时可以继续使用ab4.png
有人知道或有这样的功能吗?或者你们能帮帮我吗?你们有什么特别的理由想这样做吗?或者,您是否正在试图找到一种创建唯一文件名的方法?如果是后者,那么看看PHP的函数 在这种情况下,这样如何,它不能满足您的所有要求,但会让您更接近:
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";
给你:
A
Z
AA
我
赢得
只是按照你的要求做了些马虎的事
$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=128;
$charset='abcdefghijklmnopqrstuvxyz';
$charset.='0123456789';
$charset.='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$len=strlen($charset);
$ret='';
$tmp=$id;
$it=ceil($tmp/$len);
对于($i=0;$i<$it;$i++){
$ret.=$charset[($tmp>$len)?0:$tmp%$len];
$tmp-=$len;
}
echo$ret;
$id
应该是数据库中的增量主id
编辑:不完全是你想要的。没关系,以丹的解决方案为例。我会用它,但我正试图找到尽可能简短的内容,它们将被用作链接。这真是太棒了。非常感谢。当然,我有一个小问题,我如何修改它以使用字符集(如上面我的)而不是使用char()(这样我就不必使用char()中的其他字符)?这也是一些很棒的代码,我将使用这两个字符来尝试在两者之间创建一些东西。谢谢