php中比较数组的未识别偏移量警告
我在php中收到一些未识别的偏移警告php中比较数组的未识别偏移量警告,php,arrays,offset,Php,Arrays,Offset,我在php中收到一些未识别的偏移警告 <?php /*****************************************************************/ /*****************************************************************/ /**** Queries Active Directory For Overview Off All Employees ****/ /****************
<?php
/*****************************************************************/
/*****************************************************************/
/**** Queries Active Directory For Overview Off All Employees ****/
/*****************************************************************/
/*****************************************************************/
/*-------------*/
/* Credentials */
/*-------------*/
$ldapserver = 'srv-dc-01.vex.local';
$ldapuser = 'SamL@vex';
$ldappass = 'xxxx!';
$ldaptree = "OU=Users,OU=MyBusiness,DC=vex,DC=local";
$secret = '}84lSB+-cdH{?[';
/*------------------------*/
/* Connect & Authenticate */
/*------------------------*/
$ldapconn = ldap_connect($ldapserver) or die("Could not connect to LDAP server.");
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3); // For LDAP v3
$ldapbind = ldap_bind($ldapconn, $ldapuser, $ldappass) or die ("Error trying to bind: ".ldap_error($ldapconn));
/*------------------------*/
/* Query Active Directory */
/*------------------------*/
$result = ldap_search($ldapconn,$ldaptree, "(cn=*)", array("cn","title","mail","telephonenumber","thumbnailphoto")) or die ("Error in search query: ".ldap_error($ldapconn));
$data = ldap_get_entries($ldapconn, $result);
$count = $data['count'];
?>
<html>
<head>
<title>sive</title>
<style>
.box {
float:left;
width:400px;
height:100px;
border-style:dashed;
border-width:2px;
border-color:grey;
padding:5px;
margin:5px;
}
.picture {
float:left;
width:100px;
}
</style>
</head>
<body>
<?php
for($i=0;$i<$count;$i++)
{
$blacklist = array("BES Admin","Network Administrator","SBSMonAcct","Directory Updater","NL Admin","Standard User","Standard User with administration links","SSL Admin");
foreach ($blacklist as $key => $value){
if($data[$i]["cn"][0] === $value) { continue; }
}
/*if($data[$i]["cn"][0] === "BES Admin") { continue; }
if($data[$i]["cn"][0] === "Network Administrator") { continue; }
if($data[$i]["cn"][0] === "SBSMonAcct") { continue; }
if($data[$i]["cn"][0] === "Directory Updater") { continue; }
if($data[$i]["cn"][0] === "NL Admin") { continue; }
if($data[$i]["cn"][0] === "Standard User") { continue; }
if($data[$i]["cn"][0] === "Standard User with administration links") { continue; }
if($data[$i]["cn"][0] === "SSL Admin") { continue; }
if($data[$i]["cn"][0] === "Vente-Exclusive.com Club") { continue; }
if($data[$i]["cn"][0] === "Vente-Exclusive.com Logistics") { continue; }
if($data[$i]["cn"][0] === "SQLServer2005MSSQLUser\$WIN-EUGSO7LO7PY\$BLACKBERRY") { continue; }
if($data[$i]["cn"][0] === "Sharepoint TFS") { continue; }
if($data[$i]["cn"][0] === "Jobs Autoreply") { continue; }
if($data[$i]["cn"][0] === "Printer Lookup2") { continue; }
if($data[$i]["cn"][0] === "Printer Lookup") { continue; }
if($data[$i]["cn"][0] === "VPN Lookup") { continue; }
if($data[$i]["cn"][0] === "WallaceBackups") { continue; }
if($data[$i]["cn"][0] === "Info - Yaminta") { continue; }
if($data[$i]["cn"][0] === "Service - Yaminta") { continue; }
if($data[$i]["cn"][0] === "QA -. Test Mailbox") { continue; }
if($data[$i]["cn"][0] === "Vente-Exclusive.com Android App") { continue; }
if($data[$i]["cn"][0] === "Vente-Exclusive.com Social") { continue; }
if($data[$i]["cn"][0] === "FashionDays") { continue; }
if($data[$i]["cn"][0] === "KTN - Vente-Exclusive Admin") { continue; }
if($data[$i]["cn"][0] === "Skype") { continue; }
if($data[$i]["cn"][0] === "WSSSERVICE") { continue; }
if($data[$i]["cn"][0] === "Accounting Robot") { continue; }
if($data[$i]["cn"][0] === "NL - Amsterdam - Main meeting room") { continue; }
if($data[$i]["cn"][0] === "Ticketing Authenticator") { continue; }
if($data[$i]["cn"][0] === "SQLServerMSSQLServerADHelperUser\$SRV-DC-01") { continue; }
if($data[$i]["cn"][0] === "SQLServer2005SQLBrowserUser\$SRV-DC-01") { continue; }
if($data[$i]["cn"][0] === "SQLServerMSSQLServerADHelperUser\$VEX-SRV-NL-01") { continue; }
if($data[$i]["cn"][0] === "SQLServer2005SQLBrowserUser\$VEX-SRV-NL-01") { continue; }
if($data[$i]["cn"][0] === "SQLServerMSSQLServerADHelperUser\$SRV-DC-02") { continue; }
if($data[$i]["cn"][0] === "SQLServer2005SQLBrowserUser\$SRV-DC-02") { continue; }
if($data[$i]["cn"][0] === "BE_HUM65_02_London") { continue; }
if($data[$i]["cn"][0] === "BE_HUM65_02_NewYork") { continue; }
if($data[$i]["cn"][0] === "BE_HUM65_02_Paris") { continue; }
if($data[$i]["cn"][0] === "BE_HUM65_02_Milan") { continue; }
if($data[$i]["cn"][0] === "BE_HUM65_02_Antwerp") { continue; }
if($data[$i]["cn"][0] === "BE_HUM65_02_HongKong") { continue; }
if($data[$i]["cn"][0] === "BE_HUM65_02_Barcelona") { continue; }
if($data[$i]["cn"][0] === "BE_HUM111_01_Coton") { continue; }
if($data[$i]["cn"][0] === "BE_HUM111_01_Silk") { continue; }
if($data[$i]["cn"][0] === "BE_HUM111_01_Leather") { continue; }
if($data[$i]["cn"][0] === "0024d63772ec") { continue; }
if($data[$i]["cn"][0] === "0c607621979d") { continue; }
if($data[$i]["cn"][0] === "000085ffbde8") { continue; }
if($data[$i]["cn"][0] === "0088653e354e") { continue; }
if($data[$i]["cn"][0] === "Ops Monitor") { continue; }
if($data[$i]["cn"][0] === "DG_IT_Logistics") { continue; }
if($data[$i]["cn"][0] === "DG_StrongView") { continue; }
if($data[$i]["cn"][0] === "OPS Support") { continue; }
if($data[$i]["cn"][0] === "SYS Support") { continue; }*/
echo "<div class=\"box\">";
$userData = $data[$i];
if(array_key_exists('thumbnailphoto', $userData))
{
$fileName = tempnam(sys_get_temp_dir(), 'vex');
$imageParam = basename($fileName);
$keyParam = md5($secret . $imageParam);
$fp = fopen($fileName, "wb") or die("Can't open $fileName for writing");
fwrite($fp, $userData['thumbnailphoto'][0]);
fclose($fp);
echo "<div class=\"picture\"><img src=\"pic.php?image=" . rawurlencode($imageParam) . "&key=" . rawurlencode($keyParam) . "\" width=\"96\"></div>";
}
echo "Full name: ". $data[$i]["cn"][0] ."<br />";
if(isset($data[$i]["title"][0])) {
echo "Title: ". $data[$i]["title"][0] ."<br />";
} else {
echo "Title: No title found<br />";
}
if(isset($data[$i]["mail"][0])) {
echo "Email: <a href='mailto:". $data[$i]["mail"][0] ."'> ". $data[$i]["mail"][0] ."</a><br />";
} else {
echo "Email: No mail found<br />";
}
if(isset($data[$i]["telephonenumber"][0])) {
echo "Phone: ". $data[$i]["telephonenumber"][0] ."<br /><br />";
} else {
echo "Phone: No number found<br /><br />";
}
echo "</div>";
}
/*------------------*/
/* Close Connection */
/*------------------*/
ldap_unbind($ldapconn);
?>
</body>
</html>
这将跳过黑名单数组中的所有值,而不会发出警告 您的数组只有键0-7。如果
$i
的值不是这些值中的一个,则它是未定义的偏移量<代码>打印(黑名单)代码>显示键及其值:
Array
(
[0] => BES Admin
[1] => Network Administrator
[2] => SBSMonAcct
[3] => Directory Updater
[4] => NL Admin
[5] => Standard User
[6] => Standard User with administration links
[7] => SSL Admin
)
请确保您的变量$count
已定义且其值不大于8,但我猜您想要的正好是8:
$count = count($blacklist);
也可以将循环定义为:
$blacklist = array("BES Admin","Network Administrator","SBSMonAcct","Directory Updater","NL Admin","Standard User","Standard User with administration links","SSL Admin");
for($i=0; $i<count($blacklist); $i++){
if($data[$i]["cn"][0] === $blacklist[$i]) { continue; }
}
$i在这里没有定义。因此,请先定义它。你需要提供更多的代码。发布错误以及你正在做的事情。好吧,如果没有匹配项,那么避免此错误的最佳方法是什么?@user2681510-最好的方法是使用
count($blacklist)获得你需要的值
@user2681510-确保在循环之外定义数组。好吧,我这样做了,但我的代码输出了我不想要的机器。错误消失了@user2681510-这听起来像是一个完全不同的问题的主题。这个问题与您的错误有关,您没有发布任何关于$data
数组的信息,也没有发布您如何进行输出的信息。
$blacklist = array("BES Admin","Network Administrator","SBSMonAcct","Directory Updater","NL Admin","Standard User","Standard User with administration links","SSL Admin");
for($i=0; $i<count($blacklist); $i++){
if($data[$i]["cn"][0] === $blacklist[$i]) { continue; }
}
$blacklist = array("BES Admin","Network Administrator","SBSMonAcct","Directory Updater","NL Admin","Standard User","Standard User with administration links","SSL Admin");
foreach ($blacklist as $key => $value){
if($data[$i]["cn"][0] === $value) { continue; }
}