function filter_markup
Search API
7.x misc.inc | filter_markup($str, $type = "basic") |
6.x misc.inc | filter_markup($str, $type = "basic") |
4.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.
17 calls to filter_markup()
- advise_display_popup_change_track in modules/
advise/ advise.module - advise_display_popup_change_track_non_dynamic_degree in modules/
advise/ advise.module - This is the "change track" popup we will display if the degree cannot be combined with anything else (non-dynamic).
- calendar_confirm_cancel_appointment_form_submit in modules/
calendar/ calendar.module - calendar_get_appointments_for_faculty in modules/
calendar/ calendar.module - Return back a list of appointment content nodes for this faculty member, which fall between the specified datetimes.
- calendar_schedule_appointment_confirm_form_submit in modules/
calendar/ calendar.module - We passed validation, it's time to actually submit now!
File
- includes/
misc.inc, line 1032 - 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;
}