Подтвердить что ты не робот

Что использовать? time() или $_SERVER ['REQUEST_TIME']? Что лучше?

Какая из этих двух функций времени лучше?

У меня есть форма на моем сайте, которая подана тысячами пользователей каждые микросекунды или меньше, таким образом, тысячи запросов одновременно на моем сервере.

Поэтому я хочу использовать тот, который не использует сон во время выполнения. Кроме того, насколько уникальным является $_SERVER['REQUEST_TIME'] и time()? Оба изменения меняются каждые микросекунды?

Будет ли переменная $_SERVER ['REQUEST_TIME'] изменяться каждый раз, когда я отправлю форму? Например, функция time() будет меняться при каждой разнице во времени.

Мне нужно предоставить уникальный URL-адрес пользователю для проверки, в котором я добавляю уникальный результат, сгенерированный из одного из двух? Кроме того, использование microtime() сделает PHP спящим? не так ли?

4b9b3361

Ответ 1

Это зависит.

$_SERVER['REQUEST_TIME'] соответствует времени, когда запрос запущен, веб-сервер предоставляет эти данные.

time() фактически запускает syscall, чтобы проверить время, когда эта строка вызывается.

Вам нужно быть более конкретным в том, что вы хотите сделать, чтобы мы могли дать вам полные ответы.

Ответ 2

time() изменяется один раз в секунду. microtime() (необязательно, с (true)) чаще.

$_SERVER['REQUEST_TIME'] задается при запуске PHP-процесса, но это просто простой поиск переменных и так быстрее. В большинстве случаев вам не требуется микросекундное разрешение, особенно если процесс будет выполняться в течение секунды в любом случае для создания веб-страницы.

Ответ 3

от php.net:

$_ SERVER [ 'REQUEST_TIME_FLOAT'];
Временная метка начала запроса с точностью до микросекунды.

http://php.net/manual/en/reserved.variables.server.php (Осторожно, см. Примечание Алистера об использовании REQUEST_TIME)

Ответ 4

$_SERVER['REQUEST_TIME'] находится на время начала сеанса, он полностью отличается от использования time() или microtime() тем, что он является константой для этого запуска.

Ответ 5

Вы должны использовать time() или microtime() или uniqid(), если это необходимо для целей проверки.

Вопрос: зачем вам нужно время, чтобы быть уникальным?

EDIT: потому что вы отредактировали свой вопрос.

$_ SERVER ['REQUEST_TIME'] предоставит вам временную метку начала запроса. Он будет меняться в зависимости от времени, когда пользователь делает запрос.

Ответ 6

вы должны учитывать миллисекунды на основе microtime()

$milliseconds = round(microtime(true) * 1000);