PHP 8.1.0 RC 4 available for testing

posix_times

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_timesSüreçle ilgili işlemci zamanlarını döndürür

Açıklama

posix_times(): array|false

O an ki işlemci kullanımı ile ilgili bilgi verir.

Değiştirgeler

Bu işlevin değiştirgesi yoktur.

Dönen Değerler

O an ki işlemci kullanımı hakkındaki bilgileri indisli bir dizge olarak döndürür. İndisler şunlardır:

  • ticks - sistem açıldığından beri sayılan saat tiklerinin sayısı.
  • utime - geçerli süreç tarafından harcanan kullanıcı zamanı.
  • stime - geçerli süreç tarafından harcanan sistem zamanı.
  • cutime - geçerli süreç ve çocukları tarafından harcanan kullanıcı zamanı.
  • cstime - geçerli süreç ve çocukları tarafından harcanan sistem zamanı.
İşlev başarısız olursa false döndürür.

Örnekler

Örnek 1 - posix_times() örneği

<?php

$times 
posix_times();

print_r($times);
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

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

Notlar

Uyarı

Bu işlev, büyük süreler için negatif değerler döndürebileceğinden güvenilir değildir.

add a note add a note

User Contributed Notes 4 notes

up
1
brain at winbot dot co dot uk
17 years ago
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.
up
1
murphy at nmc-online dot co dot uk
18 years ago
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
up
0
not_rich_yet at hotmail dot com
18 years ago
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
up
0
rossz+php at vamos-wentworth dot org
18 years ago
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");
  }
}
To Top