Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Нюансы использования microtime
Покинул форум
Сообщений всего: 108
Дата рег-ции: Сент. 2010
Помог: 0 раз(а)
При парсинге новостей парсю отдельно изображения. Все делаю в цикле. Чтобы дать изображениям новые уникальные имена использовал функцию time, но столкнулся с такой проблемой, что некоторые картинки имеют одинаковые названия. Попробовал функцию microtime и получилось что в базу записываются изображения с одним названием, а в папку загрузки с другим.
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
allforweb пишет:
Как правильно перехватить новое имя файла при копировании?
Для реализации приведенной вами задачи по осуществлению генерации уникальных имен для файловых объектов - в действительности целесообразным вариантом решения является использование функции uniqid с возможным указанием префикса группы объектов
Однако решение данной задачи возможно и согласно приведенным вами требования с определением существованя имени файла - что может быть реализовано посредством использования исключительной и разделяющей блокировки для инстанций PHP-скриптов
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
allforweb
Отправлено: 04 Декабря, 2010 - 21:21:43
Гость
Покинул форум
Сообщений всего: 108
Дата рег-ции: Сент. 2010
Помог: 0 раз(а)
А можно поподробнее? Только не забывайте что это парсер.
JustUserR
Отправлено: 04 Декабря, 2010 - 21:28:32
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
allforweb пишет:
А можно поподробнее? Только не забывайте что это парсер
В случае если выполнение целевого PHP-скрипта осуществляется в едином последовательном потоке без возможности создания конкуртных процессов - то возникновение указанной вами проблемы с обеспечением появления идентичных временных меток может быть разрешено посредством установку инструкции sleep(1) Однако в реальных многопоточных системах необходимо включение таких механизмов взаимной блокировки как в частности FILE_LOCK - в таком случае для параллельно исполняемых PHP-скриптов обеспечивается возможность приостановления потока выполнения по момент получения монопольного доступа к ресурсу - более подброная информация по данному вопросу предоставлена здесь http://php.su/functions/?flock
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
DeepVarvar
Отправлено: 04 Декабря, 2010 - 21:30:29
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
allforweb пишет:
Это я уже понял. $newname = md5(microtime()) - а можно подробнее код написать? Вот так верно будет?
Использования операции создания хеш-кода для заданной фиксированой строки осуществляет генерирование единого результата - по этой причине в случае если используемый вами параметр текущего времени является повторяющейся величиной в инстациях выполнения PHP-скрипта - то использование указанного подхода не обеспечит достижение желаемого результата
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
allforweb
Отправлено: 06 Декабря, 2010 - 00:46:31
Гость
Покинул форум
Сообщений всего: 108
Дата рег-ции: Сент. 2010
Помог: 0 раз(а)
Может кто-то сможет помочь мне решить эту задачу не только теоретически, а практически, показать код, который будет работать?
Задача вроде простая, но я ее решить пока не могу:
картинка копируется парсером в цикле очень быстро
парсим картинку - копируем в каталог - сразу даем ей новое уникальное имя (это у меня делается одной строкой)
новое уникальное имя нужно загнать в БД
Как из этой строки можно получить только новое уникальное имя файла?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.