Lexikon
из списка имен генерировались страницы с именами, но т.к. порой в страница получались с одинаковыми именами решил поставить функцию для создания трехсимвольных кодов которые должны были приписываться в конце.
вот сама функция:
function generate_code($length = 3){
$num = range(0, 9);
$alf = range('a', 'h');
$_alf = range('l', 'y');
$symbols = array_merge($num, $alf, $_alf);
shuffle($symbols);
$code_array = array_slice($symbols, 0, (int)$length);
$code = implode("", $code_array);
return $code;
}
в процессе работы цикла была строка которая всё собирала в единое целое
$gCode = generate_code();
$fileName = $fileName."-".$i."-".$getDomain."-".$gCode;
самое интересное что когда я испытывал этот генератор кода отдельно он генерил всё разное, но вот когда вставил в основной код получилось так:
mco
aon
a08
p0a
sq8
nyw
u75
abx
x5d
и сново
mco
aon
a08
p0a
sq8
nyw
u75
abx
x5d
и так постоянно
даже предроложить немогу почему он генерил это всё по кругу.
самое интересное что даже когда я выключал комп, и утром стел продолжать работать эти коды вновь фигурировали
как так, ну мог предположить что глю, но вот после ресета всей системы сново, теряюсь в догадках.
в обработке было 10к строк
которые обрабатывались не одним пакетом, а в разное время
т.е. мог сначала 50 строк, потом через время еще 100, потом 5. а структура повтора этого кода не менялась
AWD
лень разбираться, почему так происходит, но ты маньяк
сделай
Код:
function generate_code() {
return substr(md5(microtime(true)), 0, 3);
}
и не мучайся
ну и сделай проверку
Код:
do {
$gCode = generate_code();
$TMPfileName = $fileName."-".$i."-".$getDomain."-".$gCode;
}
while(is_file($path_to_file.'/'.$TMPfileName));
$fileName = $TMPfileName;
и можно вообще без функции: $gCode = substr(md5(microtime(true)), 0, 3);
ЗЫ: может у тебя где-то как-то юзается srand()? вообще странно... какая у тебя версия пхп? надеюсь 5.+
если есть в коде srand() с параметром убей его. array_shuffle сам инициализирует гсч, а если написать srand(число int) тогда будет одинаковая последовательность. если версия пхп < 4.2.0, тогда наоборот напиши srand(); - без параметров.