Вы хотите java.text. DecimalFormat.
DecimalFormat df = new DecimalFormat("0.00##");
String result = df.format(34.4959);
Вы можете использовать register_shutdown_function
для регистрации функции, которая будет вызываться в конце выполнения скрипта. Вы можете использовать это, чтобы определить, когда сценарий был остановлен, и выполнить определенный набор действий.
exit () / die () остановит php-скрипт.
Чтобы знать, когда остановить скрипт, вам просто нужно использовать microtime в качестве таймера и сохранить как константу (или получить из файла php.ini) максимальное время выполнения.
Вы можете также посмотрите информацию Обработка соединения . Где у нас есть такие вещи, как connection_aborted () и connection_status ()
Но какую проблему вы пытаетесь решить?
Чтобы получить обратный вызов в момент завершения работы вашего запроса, используйте register_shutdown_function (myfunction)
.
Как и большинство сред POSIX, PHP также поддерживает обработчики сигналов . Вы можете зарегистрировать собственный обработчик для события SIGTERM
.
function my_abort_handler( $signo ) {
echo "Aborted";
}
pcntl_signal( SIGTERM, "my_abort_handler" );
Возможно, вы захотите взглянуть на pcntl-alarm , который позволяет сценарию отправлять сигнал самому себе. Также содержит некоторые примеры того, как перехватывать сигналы уничтожения, которые может отправлять ОС. И действительно умереть ().
Ну, вы могли бы начать $ start = microtime (true)
, который вернет отметку времени. Затем вы можете просто продолжать проверять microtime (true)
и вычитать это из своего времени начала, чтобы получить количество секунд с момента выполнения.
Но нет, вы можете ' t «поймать» скрипт как его завершение из-за слишком длинного запроса. Вы можете попробовать сделать что-нибудь в последний момент в обработчике завершения работы, но я не уверен, что PHP это выполнит.
Похоже, раньше была функция, которая делает именно то, что вы хотите, connection_timeout ( ) , но он устарел и был удален. Однако не знаю, есть ли этому какая-нибудь замена.