; <A href=''/"mailto:$email/"''>$email</A>
\n";
}
}
}
else
{
echo "Result set empty for query: $ldap_query";
}
?>
在我们的例子中,$format_array是我们建立的新数组,里面包括有
查询的结果,并且被格式化用作输出。首先循环$result_array中的每个元素,并且将它分配给一个两维的数组用作排序。同时我们使用strtolower()函数将所有的值变为小写。
接着,我们使用PHP自带的一个称为sort()的函数进行排序。首个参数是要排序的数组,另一个是要执行的排序类型,该类型是由PHP的文档定义的。由于我们根据字符串排序,我们使用“SORT_STRING”。
第三,我们循环已经格式化好的数组,并且将它分配给一个名字为$result_list的输出字符,该字符包含了HTML描述。要特别注意的是,在超
链接中,我使用的是ldap的URL格式。这个格式的例子类似:HREF="ldap://ldap.domain.net/uid=dannie,dc=domain.net"。
关闭连接
现在我们所有的数据已经包含在$result_list中了,我们可以安全地关闭LDAP的连接。
<?php
//关闭连接
ldap_close($connect_id);
〈?〉〉
定制搜索界面的HTML表格
最后,我们要定制搜索用的HTML表格,它是用来给用户执行搜索的。
//定制表格
echo " <CENTER><FORM action=''\"$PHP_SELF\"'' method=''\"GET\"''>";
echo "Search in:<SELECT name=''\"SERVER_ID\"''>"; //循环以建立SELECT选项 for($i=0; $i<COUNT($LDAP_NAME); <br $i++)> echo "<OPTION selected value=''\"$i\"''>".$LDAP_NAME[$i]."</OPTION>"; echo "</SELECT>
";
echo "Search for:<INPUT name=''\"common\"'' type=''\"text\"''>";
echo "<INPUT name=''\"lookup\"'' type=''\"submit\"'' value=''\"go\"''>
";
echo "(You can use * for wildcard searches, ex. * Stanley will find all Stanleys)
";
echo "</FORM></CENTER>";
?>
代码中的$PHP_SELF是一个全局的常量,代表的是脚本页面自身,其中的循环是用来通过我们的$LDAP_NAME变量创建SELECT选项。
显示结果
现在所有的工作已经完成了,我们将打印出结果集。如果没有符合的结果,将会显示"No Results"的信息。
〈〈?〉php
//显示结果
if($result_list)
{
echo " <CENTER><TABLE border=''\"1\"'' cellPadding=''\"10\"'' cellSpacing=''\"0\"''
BGCOLOR=\"#FFFFEA\" WIDTH=\"450\"> <TBODY><TR><TD>$result_list</TD></TR>
</TBODY></TABLE></CENTER>";
}
else
echo "No Results";
?>
源代码
以下是完整的源代码,只要将它剪切并粘贴到一个HTML文档,就可以尝试一下了。
<?php
$LDAP_NAME[0] = "Netscape Net Center";
$LDAP_SERVER[0] = "memberdir.netscape.com";
$LDAP_ROOT_DN[0] = "ou=member_directory,o=netcenter.com";
$LDAP_NAME = "Bigfoot";
$LDAP_SERVER = "ldap.bigfoot.com";
$LDAP_ROOT_DN = "";
//如果没有选择服务器的话将它设置为0
if(!$SERVER_ID)
$SERVER_ID=0;
//建立查询
$ldap_query = "cn=$common";
//连接到LDAP
$connect_id = ldap_connect($LDAP_SERVER[$SERVER_ID]);
if($connect