POSIX 函数
在线手册:中文 英文
PHP手册

posix_times

(PHP 4, PHP 5)

posix_timesGet process times

说明

array posix_times ( void )

Gets information about the current CPU usage.

返回值

Returns a hash of strings with information about the current process CPU usage. The indices of the hash are:

注释

Warning

This function isn't reliable to use, it may return negative values for high times.

范例

Example #1 Example use of posix_times()

<?php

$times 
posix_times();

print_r($times);
?>

以上例程的输出类似于:

Array
(
    [ticks] => 25814410
    [utime] => 1
    [stime] => 1
    [cutime] => 0
    [cstime] => 0
)


POSIX 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: Get process times

用户评论:

brain at winbot dot co dot uk (27-Jun-2004 02:14)

doesnt work with freebsd. as stated above the clock ticks at different intervals on different platforms.

for system uptime consider piping the uptime command or similar, depending on if performance is an issue or not.

not_rich_yet at hotmail dot com (20-Jul-2003 12:21)

If you want the output to be 'grammatically correct' then try the following code.  It will eg print '1 minute' as opposed to '1 minutes', the same goes for days and hours:

Put the following code somewhere in the head of the page code:

<?php
function uptime() {
if (!
$times = posix_times() ) {
return (
"unknown");
} else {
$now = $times['ticks'];
$days = intval($now / (60*60*24*100));
$remainder = $now % (60*60*24*100);
$hours = intval($remainder / (60*60*100));
$remainder = $remainder % (60*60*100);
$minutes = intval($remainder / (60*100));
if (
$days == 1) {$writeDays = "day";} else {$writeDays = "days";}
if (
$hours == 1) {$writeHours = "hour"; } else {$writeHours = "hours";}
if (
$minutes == 1) {$writeMins = "minute";} else {$writeMins = "minutes";}
return (
"$days $writeDays, $hours $writeHours, $minutes $writeMins");
}
}
?>

Then put this bit where you want the info displayed:

<?php
print uptime();
?>

Regards,

nry

murphy at nmc-online dot co dot uk (17-Jun-2003 07:01)

I am not sure why, and it could just be me but on my FreeBSD system using
$time = posix_times();
$time['ticks'] is an enormous value that bears no relation to the system uptime (I tested by rebooting the system,  the number does not change).
I checked my timecounters, they tick every 10.000msec and I did the maths on the returned value and it suggested the machine had been up for over 200 days - it was reformatted about a week ago.
This could be to do with FreeBSD, or *BSD, or just *idiots like me but just check before you use the function.
 ~
FreeBSD 5.1-R, Apache 2.0.46, PHP4.3.2

rossz+php at vamos-wentworth dot org (20-Nov-2002 09:42)

This function will return the system uptime as a human readable string such as "172 days, 18 hours, 15 minutes".  I didn't bother to handle singular so the grammar could be a bit off, e.g. 1 hours.

function uptime() {
  if (!$times = posix_times()) {
    return ("unknown");
  } else {
    $now = $times['ticks'];
    $days = intval($now / (60*60*24*100));
    $remainder = $now % (60*60*24*100);
    $hours = intval($remainder / (60*60*100));
    $remainder = $remainder % (60*60*100);
    $minutes = intval($remainder / (60*100));
    return ("$days days, $hours hours, $minutes minutes");
  }
}