function filter_markup
Search API
| 7.x misc.inc | filter_markup($str, $type = "basic") |
| 6.x misc.inc | filter_markup($str, $type = "basic") |
| 5.x misc.inc | filter_markup($str, $type = "basic") |
Filter string with possible HTML, allowing only certain tags, and removing dangerous attributes.
$type can be:
- "plain" - No HTML tags are allowed.
- "basic" - Only certain tags allowed, no attributes. Safest. New lines = <br>
- "full" - All HTML is allowed through.
33 calls to filter_markup()
- admin.courses.inc in modules/
admin/ admin.courses.inc - admin.degrees.inc in modules/
admin/ admin.degrees.inc - admin.groups.inc in modules/
admin/ admin.groups.inc - admin_edit_course_form_submit in modules/
admin/ admin.courses.inc - admin_edit_degree_form_submit in modules/
admin/ admin.degrees.inc
File
- includes/
misc.inc, line 1043 - This file contains misc functions for FlightPath
Code
function filter_markup($str, $type = "basic") {
if (!$str) {
return $str;
}
// Use the DOM functions to repair any mismatched HTML.
$doc = new DOMDocument();
@$doc->loadHTML(mb_convert_encoding($str, 'HTML-ENTITIES', 'UTF-8')); // ensure we are in UTF8
$str = $doc->saveHTML($doc->documentElement); // Apparently this helps solve a glitch in Linux that isn't in Windows
if ($type == 'plain') {
$str = strip_tags($str);
}
if ($type == "basic") {
// To reduce extra newlines, remove any newline which is at the END of an existing <br> tag.
$str = str_ireplace("<br>\n", "<br>", $str);
$str = str_ireplace("<br />\n", "<br>", $str);
$allowed_tags = array('a', 'em', 'strong', 'cite',
'blockquote', 'code', 'ul', 'ol', 'li',
'dl', 'dt', 'dd', 'span', 'div',
'b', 'i', 'u', 'br', 'p', 'table', 'tr',
'td', 'th', 'tbody',);
$str = filter_xss($str, $allowed_tags);
$str = trim($str);
}
return $str;
}
