public Token::scan($text)
Builds a list of all token-like patterns that appear in the text.
Parameters
string $text: The text to be scanned for possible tokens.
Return value
array An associative array of discovered tokens, grouped by type.
File
- core/lib/Drupal/Core/Utility/Token.php, line 236
Class
- Token
- Drupal placeholder/token replacement system.
Namespace
Drupal\Core\Utility
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public function scan( $text ) { // Matches tokens with the following pattern: [$type:$name] // $type and $name may not contain [ ] characters. // $type may not contain : or whitespace characters, but $name may. preg_match_all('/ \[ # [ - pattern start ([^\s\[\]:]+) # match $type not containing whitespace : [ or ] : # : - separator ([^\[\]]+) # match $name not containing [ or ] \] # ] - pattern end /x', $text , $matches ); $types = $matches [1]; $tokens = $matches [2]; // Iterate through the matches, building an associative array containing // $tokens grouped by $types, pointing to the version of the token found in // the source text. For example, $results['node']['title'] = '[node:title]'; $results = array (); for ( $i = 0; $i < count ( $tokens ); $i ++) { $results [ $types [ $i ]][ $tokens [ $i ]] = $matches [0][ $i ]; } return $results ; } |
Please login to continue.