Реклама на сайте Advertise with us

Интересный момент в коде. )))

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 27/05/12 в 15:02       Ответить с цитатойцитата 

из списка имен генерировались страницы с именами, но т.к. порой в страница получались с одинаковыми именами решил поставить функцию для создания трехсимвольных кодов которые должны были приписываться в конце.
вот сама функция:
Код: [развернуть]


в процессе работы цикла была строка которая всё собирала в единое целое
Код: [развернуть]

самое интересное что когда я испытывал этот генератор кода отдельно он генерил всё разное, но вот когда вставил в основной код получилось так:
Код: [развернуть]


даже предроложить немогу почему он генерил это всё по кругу.
самое интересное что даже когда я выключал комп, и утром стел продолжать работать эти коды вновь фигурировали icon_mad.gif
как так, ну мог предположить что глю, но вот после ресета всей системы сново, теряюсь в догадках.

в обработке было 10к строк
которые обрабатывались не одним пакетом, а в разное время
т.е. мог сначала 50 строк, потом через время еще 100, потом 5. а структура повтора этого кода не менялась icon_confused.gif

0
 



С нами с 03.02.11
Сообщения: 842
Рейтинг: 301

Ссылка на сообщениеДобавлено: 27/05/12 в 15:44       Ответить с цитатойцитата 

лень разбираться, почему так происходит, но ты маньяк smail101.gif
сделай
Код:
function generate_code() {
  return substr(md5(microtime(true)), 0, 3);
}
и не мучайся icon_biggrin.gif
ну и сделай проверку
Код:
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(); - без параметров.

9
 



С нами с 27.09.03
Сообщения: 5454
Рейтинг: 2506

Ссылка на сообщениеДобавлено: 27/05/12 в 22:25       Ответить с цитатойцитата 

а еще вроде в винде srand до сих пор одинаковую последовательность генерит
в любом случае вариант от AWD самый нормальный

8
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »