Php 如何为字符串/文件名创建组?
好的,我是stackoverflow的新手 开发一个电子商务网站,我有多达50个独特的图像在主页上,需要加载。我正在使用Amazon CDN处理我的图像,所有这些文件都位于一个具有唯一域的存储桶中 我希望将多个域映射到此存储桶。但是,对于每个映像,我应该能够在运行时找到上次为其提供服务的域,以便对缓存进行最佳优化。我的想法是有一个函数func(filename),它可以为同一个文件名每次返回0-9之间的值。这可以用于域名 我不希望func像散列一样很重,在这种情况下,我希望碰撞而不是避免碰撞 一个简单的方法是使用intval(文件名),然后使用最低有效位。然而,我不确定这是否是一个好的解决方案,以及价差是否平衡Php 如何为字符串/文件名创建组?,php,algorithm,hash,amazon-web-services,amazon-cloudfront,Php,Algorithm,Hash,Amazon Web Services,Amazon Cloudfront,好的,我是stackoverflow的新手 开发一个电子商务网站,我有多达50个独特的图像在主页上,需要加载。我正在使用Amazon CDN处理我的图像,所有这些文件都位于一个具有唯一域的存储桶中 我希望将多个域映射到此存储桶。但是,对于每个映像,我应该能够在运行时找到上次为其提供服务的域,以便对缓存进行最佳优化。我的想法是有一个函数func(filename),它可以为同一个文件名每次返回0-9之间的值。这可以用于域名 我不希望func像散列一样很重,在这种情况下,我希望碰撞而不是避免碰撞 一
有什么建议吗?像这样简单的建议怎么样:
function customHash($str) {
$hash = 0;
for ($i = 0; $i < strlen($str); $i++) {
$hash += ord($str[$i]);
}
return $hash % 10;
}
函数customHash($str){
$hash=0;
对于($i=0;$i
您可以通过多种方式对此进行优化,例如使用iconv_strlen()正确处理utf-8字符串,而不是整个长度,
$len=max(6,$strlen)代码>可以使用(虽然性能提升并不显著…。谢谢。。。。我使用了非常类似的东西,只使用了最后两个字符。(文件扩展名除外。