CDN分发的PHP算法
忽略以下问题: 我包含的CSS文件被拉入其他文件,因此相关性*facepalm*CDN分发的PHP算法,php,algorithm,cdn,Php,Algorithm,Cdn,忽略以下问题: 我包含的CSS文件被拉入其他文件,因此相关性*facepalm* 我们有以下代码,用于为每个文件名选择CNAME CDN引用。它必须根据给定的文件名每次返回相同的URL。我们认为这将是足够随机的: <?php function cdn_prefix($fileName) { $number_of_servers = 4; $md5 = md5($fileName); $md5 = substr($md5, 0, 4); $has
我们有以下代码,用于为每个文件名选择CNAME CDN引用。它必须根据给定的文件名每次返回相同的URL。我们认为这将是足够随机的:
<?php
function cdn_prefix($fileName) {
$number_of_servers = 4;
$md5 = md5($fileName);
$md5 = substr($md5, 0, 4);
$hash_number = base_convert($md5, 16, 10);
$server_number = ($hash_number % $number_of_servers) + 1;
$server_prefix = '//static' . $server_number . '.' . $_SERVER['SERVER_NAME'];
return $server_prefix . $fileName;
}
?>
这可能是一次性的,也可能是其他地方的错误
function cdn_prefix($fileName) {
$number_of_servers = 4;
$md5 = md5($fileName);
$md5 = substr($md5, 0, 4);
$hash_number = base_convert($md5, 16, 10);
$server_number = ($hash_number % $number_of_servers) + 1;
return $server_number;
}
$arr = array(1=>0, 2=>0, 3=>0, 4=>0,);
for ($i = 1; $i < 200000; $i++) {
$arr[cdn_prefix("anrg".$i)]++;
}
print_r($arr);
函数cdn\u前缀($fileName){
$number\u服务器的数量=4;
$md5=md5($fileName);
$md5=substr($md5,0,4);
$hash_number=base_convert($md5,16,10);
$server\u number=($hash\u number%$number\u服务器)+1;
返回$server\u编号;
}
$arr=数组(1=>0,2=>0,3=>0,4=>0,);
对于($i=1;$i<200000;$i++){
$arr[cdn_前缀(“anrg”$i)]+;
}
印刷费($arr);
给出:
Array
(
[1] => 49770
[2] => 50090
[3] => 50026
[4] => 50113
)
排列
(
[1] => 49770
[2] => 50090
[3] => 50026
[4] => 50113
)
这可能是一次性的,也可能是其他地方的错误
function cdn_prefix($fileName) {
$number_of_servers = 4;
$md5 = md5($fileName);
$md5 = substr($md5, 0, 4);
$hash_number = base_convert($md5, 16, 10);
$server_number = ($hash_number % $number_of_servers) + 1;
return $server_number;
}
$arr = array(1=>0, 2=>0, 3=>0, 4=>0,);
for ($i = 1; $i < 200000; $i++) {
$arr[cdn_prefix("anrg".$i)]++;
}
print_r($arr);
函数cdn\u前缀($fileName){
$number\u服务器的数量=4;
$md5=md5($fileName);
$md5=substr($md5,0,4);
$hash_number=base_convert($md5,16,10);
$server\u number=($hash\u number%$number\u服务器)+1;
返回$server\u编号;
}
$arr=数组(1=>0,2=>0,3=>0,4=>0,);
对于($i=1;$i<200000;$i++){
$arr[cdn_前缀(“anrg”$i)]+;
}
印刷费($arr);
给出:
Array
(
[1] => 49770
[2] => 50090
[3] => 50026
[4] => 50113
)
排列
(
[1] => 49770
[2] => 50090
[3] => 50026
[4] => 50113
)
哇,真奇怪。你确定这不是一次性的事吗?你可以试试更好的散列,比如sha256。哇,真奇怪。你确定这不是一次性的事吗?你可以试试更好的散列,比如sha256。