note 104737 modified in function.posix-getpwuid by danbrown

From: Date: Tue, 05 Jul 2011 13:40:02 +0000
Subject: note 104737 modified in function.posix-getpwuid by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-181242@lists.php.net to get a copy of this message
Here's a fairly safe way to get the username from uid even if the posix extension isn't installed. <?php function GetUsernameFromUid($uid) { if (function_exists('posix_getpwuid')) { $a = posix_getpwuid($uid); return $a['name']; } # This works on BSD but not with GNU elseif (strstr(php_uname('s'), 'BSD')) { exec('id -u ' . (int) $uid, $o, $r); if ($r == 0) return trim($o['0']); else return $uid; } elseif (is_readable('/etc/passwd')) { exec(sprintf('grep :%s: /etc/passwd | cut -d: -f1', (int) $uid), $o, $r); if ($r == 0) return trim($o['0']); else return $uid; } else return $uid; } ?> --was-- Here's a fairly safe way to get the username from uid even if the posix extension isn't installed. function GetUsernameFromUid($uid) { if (function_exists('posix_getpwuid')) { $a = posix_getpwuid($uid); return $a['name']; } # This works on BSD but not with GNU elseif (strstr(php_uname('s'), 'BSD')) { exec('id -u ' . (int) $uid, $o, $r); if ($r == 0) return trim($o['0']); else return $uid; } elseif (is_readable('/etc/passwd')) { exec(sprintf('grep :%s: /etc/passwd | cut -d: -f1', (int) $uid), $o, $r); if ($r == 0) return trim($o['0']); else return $uid; } else return $uid; } http://php.net/manual/en/function.posix-getpwuid.php

« previous php.notes (#181242) next »