(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
ldap_set_option — Set the value of the given option
Sets the value of the specified option to be value.
Note:
TLS-related options (
LDAP_OPT_X_TLS_*) must be set globally by passingnullasldap, because the TLS context is initialized before the per-connection state is available. These options must also be set before calling ldap_bind().
ldap
Either an LDAP\Connection instance, returned by
ldap_connect(), to set the option for that connection,
or null to set the option globally.
option
The parameter option can be one of:
LDAP_OPT_SERVER_CONTROLS and
LDAP_OPT_CLIENT_CONTROLS require a list of
controls, this means that the value must be an array of controls. A
control consists of an oid identifying the control,
an optional value, and an optional flag for
criticality. In PHP a control is given by an
array containing an element with the key oid
and string value, and two optional elements. The optional
elements are key value with string value
and key iscritical with boolean value.
iscritical defaults to false
if not supplied. See » draft-ietf-ldapext-ldap-c-api-xx.txt
for details. See also the second example below.
Note:
All TLS options must be set globally before ldap_connect() for ldaps connection or for the connection before ldap_start_tls().
value
The new value for the specified option.
| Version | Description |
|---|---|
| 8.5.0 |
A ValueError is now thrown when passing an
invalid option.
|
| 8.1.0 |
The ldap parameter expects an LDAP\Connection
instance now; previously, a valid ldap link resource was expected.
|
Example #1 Set protocol version
<?php
// $ds is a valid LDAP\Connection instance for a directory server
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
echo "Using LDAPv3";
} else {
echo "Failed to set protocol version to 3";
}
?>Example #2 Set server controls
<?php
// $ds is a valid LDAP\Connection instance for a directory server
// control with no value
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => true);
// iscritical defaults to FALSE
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
// try to set both controls
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1, $ctrl2))) {
echo "Failed to set server controls";
}
?>Example #3 Debugging a connection issue
<?php
// A NULL connection sets the option for the whole process (OpenLDAP only).
// Set before ldap_connect(), it also traces the initialization; set later,
// only the operations that follow are traced.
// 7 combines the OpenLDAP levels 1 (trace), 2 (packets) and 4 (arguments).
// The traces are written to stderr, not to the output of the script.
ldap_set_option(null, LDAP_OPT_DEBUG_LEVEL, 7);
$ds = ldap_connect("ldaps://ldap.example.com:636");
ldap_bind($ds);
?>Note:
This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x.