ldap_escape

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

ldap_escapeEscapa uma string para uso em um filtro LDAP ou DN

Descrição

ldap_escape(string $value, string $ignore = "", int $flags = 0): string

Escapa a string informada em value para uso no contexto especificado por flags.

Parâmetros

value

O valor a ser escapado.

ignore

Caracteres ignorados no escape.

flags

O contexto no qual a string escapada será usada: LDAP_ESCAPE_FILTER para filtro usados com ldap_search() ou LDAP_ESCAPE_DN para DNs. Se nanhuma opção for passada, todos os caracteres são escapados.

Valor Retornado

Retorna a string escapada.

Exemplos

Ao construir um filtro LDAP, deve-se usar ldap_escape com a opção LDAP_ESCAPE_FILTER.

Exemplo #1 Pesquisando um endereço de e-mail

<?php
// $ds é uma instância válida de LDAP\Connection para um servidor de diretório

// $mail é um endereço de e-mail fornecido pelo usuário em um formulário

$base = "o=My Company, c=US";
$filter = "(mail=".ldap_escape($mail, "", LDAP_ESCAPE_FILTER).")";

$sr = ldap_search($ds, $base, $filter, array("sn", "givenname", "mail"));

$info = ldap_get_entries($ds, $sr);

echo
$info["count"]." entradas retornadas\n";
?>

adicione uma nota

Notas Enviadas por Usuários (em inglês) 2 notes

up
1
support at extollit dot com
5 years ago
Suppose you want to reverse the operation, here is a way to "ldap_unescape"<?phpfunction ldap_unescape($string) {    return        preg_replace_callback(            "/\\\\[\da-z]{2}/",            function ($matches) {                $match = array_shift($matches);                return hex2bin(substr($match, 1));            },            $string        );}$result = ldap_unescape("uid=\\61\\6c\\70\\68\\6f\\6e\\7a\\6f,ou=people,dc=foo,dc=com"); // uid=alphonzo,ou=people,dc=foo,dc=com?>
up
0
martin dot keckeis1 at gmail dot com
9 years ago
You can use it like this for filtering<?php$badSearchInput = 'Domain\username';$escapedSearchInput = ldap_escape($badSearchInput, null, LDAP_ESCAPE_FILTER);?>
To Top