YP/NIS 函数
在线手册:中文 英文
PHP手册

yp_cat

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_catReturn an array containing the entire map

说明

array yp_cat ( string $domain , string $map )

Returns all map entries.

参数

domain

The NIS domain name.

map

The NIS map.

返回值

Returns an array of all map entries, the maps key values as array indices and the maps entries as array data.


YP/NIS 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: Return an array containing the entire map

用户评论:

Nicholas Humfrey (22-Jan-2007 10:15)

yp_cat is lacking in PHP5 - this is a suitable (slow, forking) replacement...

<?php
    $handle
= popen( 'ypcat passwd.byname', 'r' );
    while ((
$line = fgets($handle, 1024)) !== FALSE) {
        list(
$user,$pass,$uid,$gid,$gcos,$home,$shell) = explode (':', $line);
        list(
$name,$room,$work,$home,$position)  = explode (',', $gcos);

       
## Do Stuff ##

   
}  
   
pclose( $handle );
?>

(20-Feb-2006 11:26)

I hope this will userfull to somebody:

function auth_by_nis($login,$password,$nis_domain='-d xxx_nis',$nis_host='-h xxx.it')
{
    $output = shell_exec("ypcat $nis_domain $nis_host passwd");
    $lines=split("\n",$output);
    foreach ($lines as $k=>$v)
    {
        list($login_nis,$pw_nis)=split(":",$v);
        if ($login_nis != $login)continue;
        //login trovata: ora si verifica la password
        $salt=substr( $pw_nis , 0 ,2);
        $pass_cript=crypt($password, $salt);
        if($pass_cript == $pw_nis) return 1;
        else return 0;   
    }
    return 0;
}

smchang at math dot inha dot ac dot kr (21-Dec-2002 02:12)

result browsing code
<?php
$arraylist
= yp_cat($domain,"passwd.byname");
$key = array_keys($arraylist);
$count = count($key);
for (
$i = 0; $i < $count ; $i++ ) {
        echo
"COUNT $i  ->  ";
        echo
$arraylist[$key[$i]];
        echo
"<BR>\n";
}
?>
RESULT( Only First line )
COUNT 0 -> testuser:3jYXqr8fRm28M:500:500:PHP Test user:/home/testuser:/bin/csh

It, is in $key, is username(in example, testuser).