PHP Conference Japan 2024

posix_getgrgid

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

posix_getgrgid透過群組 ID 返回群組資訊

說明

posix_getgrgid(int $group_id): array|false

取得指定 ID 的群組資訊。

參數

group_id

群組 ID。

回傳值

回傳的陣列元素如下:

群組資訊陣列
元素 說明
name name 元素包含群組的名稱。這是一個簡短的,通常少於 16 個字元的群組「handle」,而不是真正的完整名稱。
passwd passwd 元素包含以加密格式儲存的群組密碼。通常,例如在使用「shadow」密碼的系統上,會改為返回一個星號。
gid 群組 ID,應該與呼叫函式時使用的 group_id 參數相同,因此是多餘的。
members 這是一個包含所有群組成員的 陣列,其元素為 字串
函式失敗時返回 false

範例

範例 #1 posix_getgrgid() 的使用範例

<?php

$groupid
= posix_getegid();
$groupinfo = posix_getgrgid($groupid);

print_r($groupinfo);
?>

上述範例將輸出類似以下的內容:

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

參見

新增註解

使用者貢獻的註解 4 則註解

tech at dslip dot com dot au
22 年前
好的...

這段程式碼應該只被視為一個選項,它在我的環境下可以運作,而這也是我唯一的目的。以下函式會在提供群組 ID 的情況下返回群組的名稱。

function RC_posix_getgrgid($gid)
{
$LocationGroup = "/etc/group"; //如果您使用不同的作業系統,請編輯此處。我的是 Debian
$fp = fopen ("/etc/group","r");
while ($groupinfo = fscanf ($fp, "%[a-zA-Z0-9]:x:%[0-9]:%[a-zA-Z0-9]\n"))
{
list ($name, $groupID, $nfi) = $groupinfo;
if ($groupID == $gid)
{
$returnval = $name;
}
}
fclose($fp);
if($returnval) { return $returnval; } else { return 0; }
}
cweiske at php dot net
15 年前
當 posix_getgrgid() 失敗時(例如,無效/未知的群組 ID),它會返回 false。
除了 Mac OSX,它會返回一個名稱為 "nogroup" 且 gid 為 "-1" 的陣列。
james at jfc dot org dot uk
21 年前
在 php-4.3 中,返回的陣列似乎已經改變。

現在它會返回

["name"] 群組名稱
["passwd"] 群組密碼
["members"] 群組成員(使用者名稱陣列)
["gid"] 群組的數值 ID
rcgraves+php at brandeis dot edu
24 年前
返回一個包含群組結構元素的陣列。該陣列同時具有數值索引和具名字串索引,每個數值索引都是一個字串,表示群組的一個成員。陣列元素如下:

$_["name"] 字串 群組名稱 (使用者)
$_["gid"] 整數 群組 ID (例如,wheel/root 的 ID 為 0)
$_["members"] 整數 群組中的使用者數量
$_[0]..$_[n] 字串 群組中的使用者名稱
To Top