blob: cc04a67dde62f17d14bdb807f9ef3c9d5a1a3780 [file] [log] [blame]
<?php
namespace LdapRecord\Models\Attributes;
class EscapedValue
{
/**
* The value to be escaped.
*
* @var string
*/
protected $value;
/**
* The characters to ignore when escaping.
*
* @var string
*/
protected $ignore;
/**
* The escape flags.
*
* @var int
*/
protected $flags;
/**
* Constructor.
*
* @param string $value
* @param string $ignore
* @param int $flags
*/
public function __construct($value, $ignore = '', $flags = 0)
{
$this->value = $value;
$this->ignore = $ignore;
$this->flags = $flags;
}
/**
* Get the escaped value.
*
* @return string
*/
public function __toString()
{
return (string) $this->get();
}
/**
* Get the escaped value.
*
* @return mixed
*/
public function get()
{
return ldap_escape($this->value, $this->ignore, $this->flags);
}
/**
* Set the characters to exclude from being escaped.
*
* @param string $characters
*
* @return $this
*/
public function ignore($characters)
{
$this->ignore = $characters;
return $this;
}
/**
* Prepare the value to be escaped for use in a distinguished name.
*
* @return $this
*/
public function dn()
{
$this->flags = LDAP_ESCAPE_DN;
return $this;
}
/**
* Prepare the value to be escaped for use in a filter.
*
* @return $this
*/
public function filter()
{
$this->flags = LDAP_ESCAPE_FILTER;
return $this;
}
/**
* Prepare the value to be escaped for use in a distinguished name and filter.
*
* @return $this
*/
public function both()
{
$this->flags = LDAP_ESCAPE_FILTER + LDAP_ESCAPE_DN;
return $this;
}
}