Improve sanitize_text_field() some more so that we don't leave extra whitespace after stripping octets. Fixes #11573.

git-svn-id: https://develop.svn.wordpress.org/trunk@12503 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Peter Westwood 2009-12-23 09:52:48 +00:00
parent 0e7754b6fa
commit e0f06bd939
1 changed files with 6 additions and 2 deletions

View File

@ -2834,14 +2834,18 @@ function sanitize_text_field($str) {
if ( strpos($filtered, '<') !== false ) {
$filtered = wp_pre_kses_less_than( $filtered );
// This will strip extra whitespace for us.
$filtered = wp_strip_all_tags( $filtered, true );
} else {
$filtered = trim( preg_replace('/[\r\n\t ]+/', ' ', $filtered) );
$filtered = trim( preg_replace('/[\r\n\t ]+/', ' ', $filtered) );
}
$match = array();
while ( preg_match('/%[a-f0-9]{2}/i', $filtered, $match) )
while ( preg_match('/%[a-f0-9]{2}/i', $filtered, $match) ) {
$filtered = str_replace($match[0], '', $filtered);
}
// Strip out the whitespace that may now exist after removing the octets.
$filtered = trim( preg_replace('/[\r\n\t ]+/', ' ', $filtered) );
return apply_filters('sanitize_text_field', $filtered, $str);
}