protected function SimpleLdapSchema::tokenize in Simple LDAP 7.2
Same name and namespace in other branches
- 7 SimpleLdapSchema.class.php \SimpleLdapSchema::tokenize()
Tokenizes the given value into an array of tokens.
@link http://pear.php.net/package/Net_LDAP2/
@license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3
1 call to SimpleLdapSchema::tokenize()
- SimpleLdapSchema::parse in ./
SimpleLdapSchema.class.php - Parse a schema value into a usable array.
File
- ./
SimpleLdapSchema.class.php, line 488 - Class to represent an LDAP server schema.
Class
- SimpleLdapSchema
- Simple LDAP Schema class.
Code
protected function tokenize($value) {
$tokens = array();
$matches = array();
// This one is taken from perl-lap, modified for php.
$pattern = "/\\s* (?:([()]) | ([^'\\s()]+) | '((?:[^']+|'[^\\s)])*)') \\s*/x";
// This one matches one big pattern wherin only one of the three subpatterns
// matched. We are interested in the subpatterns that matched. If it matched
// its value will be non-empty and so it is a token. Tokens may be round
// brackets, a string, or a string enclosed by "'".
preg_match_all($pattern, $value, $matches);
// Loop through all tokens (full pattern match).
for ($i = 0; $i < count($matches[0]); $i++) {
// Loop through each sub-pattern.
for ($j = 1; $j < 4; $j++) {
// Pattern match in this sub-pattern.
$token = trim($matches[$j][$i]);
if (!empty($token)) {
$tokens[$i] = $token;
}
}
}
return $tokens;
}