PHP4手册:函数库及函数(三十五) NIS 函式库


--------------------------------------------------------------------------------
NIS 函式库
--------------------------------------------------------------------------------
本函式库共有 8 个函式
NIS 的全名为 Network Information System,另外一个说法就是 YP (Yellow Pages)。NIS 或 YP 可以让许多不同的 UNIX 机器拥有相同的系统资讯,例如相同的使用者帐号密码,使系统管理人员及使用者都容易在不同的机器间穿梭,不可避免的,会有安全上的缺点,不过安全就不是这儿所讨论的了。而关于 NIS 方面的中英文书籍在市面上都可以找到,或者也可以参考 http://www.desy.de/~sieversm/ypdoku/ypdoku/ypdoku.html。
欲使用 NIS 函式库,记得要在编译 PHP 时将 YP 的选项打开,即加上 --with-yp 选项。
yp_get_default_domain: 取得机器的 Domain。
yp_order: 传回 map 的序数。
yp_master: 取得 NIS 的 Master。
yp_match: 取得指定资料。
yp_first: 传回 map 上第一笔符合的资料。
yp_next: 指定 map 的下笔资料。
yp_errno: 取得先前 YP 操作的错误码。
yp_err_string: 取得先前 YP 操作的错误字串。
--------------------------------------------------------------------------------
函式:yp_get_default_domain()
--------------------------------------------------------------------------------
NIS 函式库
yp_get_default_domain
取得机器的 Domain。
语法: string yp_get_default_domain(void);
传回值: 字串
函式种类: 网路系统
内容说明
本函式用来寻找伺服器本身所处的 Domain。执行成功则传回 Domain 字串,失败则传回 false。本函式执行时不需要加参数。
使用范例
$domain = yp_get_default_domain();
if(!$domain) {
echo yp_errno() . ": " . yp_err_string();
}
echo "NIS 的 domain 为: " . $domain;
?>
参考
yp_errno() yp_err_string()
--------------------------------------------------------------------------------
函式:yp_order()
--------------------------------------------------------------------------------
NIS 函式库
yp_order
传回 map 的序数。
语法: int yp_order(string domain, string map);
传回值: 整数
函式种类: 网路系统
内容说明
本函式用来取得 map 的序数,在取得 Domain 及 map 之后使用。传回值为 map 序数,若失败则传回 false。
使用范例
$number = yp_order($domain, $mapname);
if(!$number) {
echo yp_errno() . ": " . yp_err_string();
}
echo "Map 序数为: " . $order;
?>
参考
yp_get_default_domain() yp_errno() yp_err_string()
--------------------------------------------------------------------------------
函式:yp_master()
--------------------------------------------------------------------------------
NIS 函式库
yp_master
取得 NIS 的 Master。
语法: string yp_master(string domain, string map);
传回值: 字串
函式种类: 网路系统
内容说明
本函式用来获取目前所在 Domain 上的 Master 机器,在取得 Domain 及 map 之后使用。
参考
yp_get_default_domain() yp_errno() yp_err_string()
--------------------------------------------------------------------------------
函式:yp_match()
--------------------------------------------------------------------------------
NIS 函式库
yp_match
取得指定资料。
语法: string yp_match(string domain, string map, string key);
传回值: 字串
函式种类: 网路系统
内容说明
本函式用来获取指定 Domain 中 Map 中的指定资料。参数 key 可指定使用者名称等。
使用范例
下例用来取得 wilson 的资讯
$entry = yp_match($domain, "passwd.byname", "wilson");
if(!$entry) {
echo yp_errno() . ": " . yp_err_string();
}
echo "取得字串为: " . $entry;
?>
传回字串类似下面的字串
wilson:##wilson:12345:380:Wilson Peng:/home/wilson:/bin/bash
参考
yp_get_default_domain() yp_errno() yp_err_string()
--------------------------------------------------------------------------------
函式:yp_first()
--------------------------------------------------------------------------------
NIS 函式库
yp_first
传回 map 上第一笔符合的资料。
语法: array yp_first(string domain, string map);
传回值: 阵列
函式种类: 网路系统
内容说明
本函式用来取得指定 map 上第一笔传回资料的索引和其值。传回资料为阵列,若失败则传回 false。
使用范例
$entry = yp_first($domain, "passwd.byname");
if(!$entry) {
echo yp_errno() . ": " . yp_err_string();
}
$key = key($entry);
echo "第一笔索引为: ".$key."\n";
echo "其值为: ".$entry[$key];
?>
参考
yp_get_default_domain() yp_errno() yp_err_string()
--------------------------------------------------------------------------------
函式:yp_next()
--------------------------------------------------------------------------------
NIS 函式库
yp_next
指定 map 的下笔资料。
语法: array yp_next(string domain, string map, string key);
传回值: 阵列
函式种类: 网路系统
内容说明
本函式用来取得 map 上指定资料的下笔传回资料的索引和其值。传回资料为阵列,若失败则传回 false。
使用范例
$entry = yp_next($domain, "passwd.byname", "wilson");
if(!$entry) {
echo yp_errno() . ": " . yp_err_string();
}
$key = key($entry);
echo "Wilson 后的索引为: ".$key."\n";
echo "其值为: " . $entry[$key];
?>
参考
yp_get_default_domain() yp_errno() yp_err_string()
--------------------------------------------------------------------------------
函式:yp_errno()
--------------------------------------------------------------------------------
NIS 函式库
yp_errno
取得先前 YP 操作的错误码。
语法: int yp_errno(void);
传回值: 整数
函式种类: 网路系统
内容说明
本函式用来取得最后一次 YP 操作时的错误代码,代码值及意义见下表
代码 意义
1 函式的参数有错
2 RPC 错误 - 不再系着 Domain
3 在 Domain 上无法系住伺服器
4 Domain 上找不到指定的 map
5 Map 上找不到指定的索引键
6 YP 内部有错
7 资源取得错误
8 指定 Map 资料库中已无资料
9 无法与 portmapper 通讯
10 无法与 ypbind 通讯
11 无法与 ypserv 通讯
12 未设定本地的 Domain
13 YP 资料库有错
14 YP 版本不合
15 暴力存取
16 资料忙线中
--------------------------------------------------------------------------------
函式:yp_err_string()
--------------------------------------------------------------------------------
NIS 函式库
yp_err_string
取得先前 YP 操作的错误字串。
语法: string yp_err_string(void);
传回值: 字串
函式种类: 网路系统
内容说明
本函式用来取得最后一次 YP 操作时的错误字串。本函式不需参数。