刚才发的显示有点乱,我再发一遍,抱歉!
注释部分是我对这一行语句的理解:函数1:1  function GetUserName($username) {                /*定义GetUser函数,参数为$username*/
2  global $userdir;                               /*声明$userdir为全局变量*/
3  if (!file_exists("$userdir/$username")) {      /*如果在$userdir路径下不存在$username*/
4  echo "(undefined)";                            /*显示“undefined”*/
5  }
6  else {                                     /*如果存在*/
7  $files = array();                        /*不知道什么意思!
8  $user = file("$userdir/$username");      /*将$username中的数据按行存储在数组$user中,9  我觉得这个$username中应该存储着该用户的id、姓名、邮件地址等信息*/
10  $user[] = $value;                        /*将$user数组负值给$value*/
11
12  for (reset ($user); list ($key, $value) = each ($user);) {    /*将$user数组指针指向第一个元素,并遍历$user数组,键存储在$key中,值存储在$value中,(我不清楚,这个$value和上一行的$value是否相同)*/
13    if ($key == "0") { /* User Name */                          /*如果键值是0,也就是用户名所在的行*/
14      $split = explode(":", $value);                            /*将该键值所在行的内容以“:”为拆分标记,存储到数组$split中*/
15      return("$split[0]");                                   /*返回数组$split的第一个元素,也就是用户名*/
16      }
函数2:1  function GetUserEmail($username) {                 /*前10行不说了,喝上面一样*/
2  global $userdir;
3  if (!file_exists("$userdir/$username")) {
4  echo "(undefined)";
5  }
6  else {
7    $files = array();           
8    $user = file("$userdir/$username");
9    $user[] = $value;
10   for (reset ($user); list ($key, $value) = each ($user);) {    /*关键是这几行,按
                                                                     照上一个函数的逻
                                                                     辑,键值为1的数组
                                                                     $user的元素对应的
                                                                     不仅仅是用户的邮
                                                                     件地址,而是包括
                                                                     邮件地址内容的行
                                                                     记录,但这个函数没
                                                                     有将该行记录进行
                                                                     拆分,直接返回了
                                                                     $value,因此,这
                                                                     个函数得到的应不
                                                                     是用户邮件地址,
                                                                     而是包括邮件地址
                                                                     在内的一行信息*/
11    if ($key == "1") { /* User Email */
12      return("$value");
13    }不知道我理解得对不对,是第二个函数书写错误吗?请达人指点!!!!

解决方案 »

  1.   

    又没有这个可能,从$username文件存储到数组$user中的第一个元素包括不止一个用户信息,包括用户名、密码等,并且这些信息用“:”联结,所以当检索用户名和密码是,首先需要提取第一个元素,并且要将该元素的信息拆分。而从数组$user的第二个元素开始,每个元素仅含有用户的一个信息,比如邮件地址、qq号等,那么只需提取该数组元素并返回该元素内容即可。小猫初学php建站,有些问题比较幼稚,达人们见笑了!呵呵