1 filter.module | _filter_url_escape_comments($match, $escape = NULL) |
Escapes the contents of HTML comments.
Callback for preg_replace_callback() within _filter_url().
Parameters
$match: An array containing matches to replace from preg_replace_callback(), whereas $match[1] is expected to contain the content to be filtered.
$escape: (optional) A Boolean indicating whether to escape (TRUE) or unescape comments (FALSE). Defaults to NULL, indicating neither. If TRUE, statically cached $comments are reset.
Related topics
File
- core/
modules/ filter/ filter.module, line 2400 - Framework for handling the filtering of content.
Code
function _filter_url_escape_comments($match, $escape = NULL) {
static $mode, $comments = array();
if (isset($escape)) {
$mode = $escape;
if ($escape) {
$comments = array();
}
return;
}
// Replace all HTML comments with a '<!-- [hash] -->' placeholder.
if ($mode) {
$content = $match[1];
$hash = hash('sha256', $content);
$comments[$hash] = $content;
return "<!-- $hash -->";
}
// Or replace placeholders with actual comment contents.
else {
$hash = $match[1];
$hash = trim($hash);
$content = $comments[$hash];
return "<!--$content-->";
}
}