php8.5
Home/ Manual/ ldap / functions/ ldap_set_option

ldap_set_option

PHP function Edit on GitHub ✎

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

Set the value of the given option

Description

ldap_set_option(LDAP\Connection|null $ldap, int $option, array|string|int|bool $value): bool

Sets the value of the specified option to be value.

Note

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

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:

OptionTypeAvailable since
LDAP_OPT_DEREFint
LDAP_OPT_SIZELIMITint
LDAP_OPT_TIMELIMITint
LDAP_OPT_NETWORK_TIMEOUTint
LDAP_OPT_PROTOCOL_VERSIONint
LDAP_OPT_ERROR_NUMBERint
LDAP_OPT_REFERRALSbool
LDAP_OPT_RESTARTbool
LDAP_OPT_HOST_NAMEstring
LDAP_OPT_ERROR_STRINGstring
LDAP_OPT_DIAGNOSTIC_MESSAGEstring
LDAP_OPT_MATCHED_DNstring
LDAP_OPT_SERVER_CONTROLSarray
LDAP_OPT_CLIENT_CONTROLSarray
LDAP_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_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.

Return Values

Success

Changelog

VersionDescription
8.5.0A ValueError is now thrown when passing an invalid option.

Examples

Set protocol version

php
<?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
<?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

Note

This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x.

See Also

Source: reference/ldap/functions/ldap-set-option.xml · from the official PHP manual (php/doc-en)