ldap_set_option
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
Set the value of the given option
Description
Sets the value of the specified option to be value.
TLS-related options (LDAP_OPT_X_TLS_*) must be set globally by passing null as ldap, because the TLS context is initialized before the per-connection state is available. These options must also be set before calling ldap_bind().
Parameters
ldapEither an
LDAP\Connectioninstance, returned byldap_connect(), to set the option for that connection, or null to set the option globally.optionThe parameter
optioncan be one of:Option Type Available since LDAP_OPT_DEREFintLDAP_OPT_SIZELIMITintLDAP_OPT_TIMELIMITintLDAP_OPT_NETWORK_TIMEOUTintLDAP_OPT_PROTOCOL_VERSIONintLDAP_OPT_ERROR_NUMBERintLDAP_OPT_REFERRALSboolLDAP_OPT_RESTARTboolLDAP_OPT_HOST_NAMEstringLDAP_OPT_ERROR_STRINGstringLDAP_OPT_DIAGNOSTIC_MESSAGEstringLDAP_OPT_MATCHED_DNstringLDAP_OPT_SERVER_CONTROLSarrayLDAP_OPT_CLIENT_CONTROLSarrayLDAP_OPT_X_KEEPALIVE_IDLEintPHP 7.1.0 LDAP_OPT_X_KEEPALIVE_PROBESintPHP 7.1.0 LDAP_OPT_X_KEEPALIVE_INTERVALintPHP 7.1.0 LDAP_OPT_X_TLS_CACERTDIRstringPHP 7.1.0 LDAP_OPT_X_TLS_CACERTFILEstringPHP 7.1.0 LDAP_OPT_X_TLS_CERTFILEstringPHP 7.1.0 LDAP_OPT_X_TLS_CIPHER_SUITEstringPHP 7.1.0 LDAP_OPT_X_TLS_CRLCHECKintPHP 7.1.0 LDAP_OPT_X_TLS_CRLFILEstringPHP 7.1.0 LDAP_OPT_X_TLS_DHFILEstringPHP 7.1.0 LDAP_OPT_X_TLS_KEYFILEstringPHP 7.1.0 LDAP_OPT_X_TLS_PROTOCOL_MINintPHP 7.1.0 LDAP_OPT_X_TLS_PROTOCOL_MAXintPHP 8.4.0 LDAP_OPT_X_TLS_RANDOM_FILEstringPHP 7.1.0 LDAP_OPT_X_TLS_REQUIRE_CERTintPHP 7.0.5 LDAP_OPT_SERVER_CONTROLSandLDAP_OPT_CLIENT_CONTROLSrequire 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.NoteAll TLS options must be set globally before
ldap_connect()for ldaps connection or for the connection beforeldap_start_tls().valueThe new value for the specified
option.
Return Values
Success
Changelog
| Version | Description |
|---|---|
| 8.5.0 | A ValueError is now thrown when passing an invalid option. |
Examples
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";
}
?>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";
}
?>Notes
This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x.