\s*
|', "\n\n", $pee ); // Space things out a little /* wpcf7: remove select and input */ $allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)'; $pee = preg_replace( '!(<' . $allblocks . '[^>]*>)!', "\n$1", $pee ); $pee = preg_replace( '!()!', "$1\n\n", $pee ); $pee = str_replace( array( "\r\n", "\r" ), "\n", $pee ); // cross-platform newlines if ( strpos( $pee, ']*)>\s*|', "", $pee ); // no pee inside object/embed $pee = preg_replace( '|\s*\s*|', '', $pee ); } $pee = preg_replace( "/\n\n+/", "\n\n", $pee ); // take care of duplicates // make paragraphs, including one at the end $pees = preg_split( '/\n\s*\n/', $pee, -1, PREG_SPLIT_NO_EMPTY ); $pee = ''; foreach ( $pees as $tinkle ) $pee .= '

' . trim( $tinkle, "\n" ) . "

\n"; $pee = preg_replace( '|

\s*

|', '', $pee ); // under certain strange conditions it could create a P of entirely whitespace $pee = preg_replace( '!

([^<]+)!', "

$1

", $pee ); $pee = preg_replace( '!

\s*(]*>)\s*

!', "$1", $pee ); // don't pee all over a tag $pee = preg_replace( "|

(|", "$1", $pee ); // problem with nested lists $pee = preg_replace( '|

]*)>|i', "

", $pee ); $pee = str_replace( '

', '

', $pee ); $pee = preg_replace( '!

\s*(]*>)!', "$1", $pee ); $pee = preg_replace( '!(]*>)\s*

!', "$1", $pee ); if ( $br ) { /* wpcf7: add textarea */ $pee = preg_replace_callback( '/<(script|style|textarea).*?<\/\\1>/s', create_function( '$matches', 'return str_replace("\n", "", $matches[0]);' ), $pee ); $pee = preg_replace( '|(?)\s*\n|', "
\n", $pee ); // optionally make line breaks $pee = str_replace( '', "\n", $pee ); } $pee = preg_replace( '!(]*>)\s*
!', "$1", $pee ); $pee = preg_replace( '!
(\s*]*>)!', '$1', $pee ); if ( strpos( $pee, ']*>)(.*?)!is', 'clean_pre', $pee ); $pee = preg_replace( "|\n

$|", '

', $pee ); return $pee; } function wpcf7_strip_quote( $text ) { $text = trim( $text ); if ( preg_match( '/^"(.*)"$/', $text, $matches ) ) $text = $matches[1]; elseif ( preg_match( "/^'(.*)'$/", $text, $matches ) ) $text = $matches[1]; return $text; } function wpcf7_strip_quote_deep( $arr ) { if ( is_string( $arr ) ) return wpcf7_strip_quote( $arr ); if ( is_array( $arr ) ) { $result = array(); foreach ( $arr as $key => $text ) $result[$key] = wpcf7_strip_quote_deep( $text ); return $result; } } function wpcf7_normalize_newline( $text, $to = "\n" ) { if ( ! is_string( $text ) ) return $text; $nls = array( "\r\n", "\r", "\n" ); if ( ! in_array( $to, $nls ) ) return $text; return str_replace( $nls, $to, $text ); } function wpcf7_normalize_newline_deep( $arr, $to = "\n" ) { if ( is_array( $arr ) ) { $result = array(); foreach ( $arr as $key => $text ) $result[$key] = wpcf7_normalize_newline_deep( $text, $to ); return $result; } return wpcf7_normalize_newline( $arr, $to ); } function wpcf7_canonicalize( $text ) { if ( function_exists( 'mb_convert_kana' ) && 'UTF-8' == get_option( 'blog_charset' ) ) $text = mb_convert_kana( $text, 'asKV', 'UTF-8' ); $text = strtolower( $text ); $text = trim( $text ); return $text; } function wpcf7_is_name( $string ) { // See http://www.w3.org/TR/html401/types.html#h-6.2 // ID and NAME tokens must begin with a letter ([A-Za-z]) // and may be followed by any number of letters, digits ([0-9]), // hyphens ("-"), underscores ("_"), colons (":"), and periods ("."). return preg_match( '/^[A-Za-z][-A-Za-z0-9_:.]*$/', $string ); } function wpcf7_sanitize_unit_tag( $tag ) { $tag = preg_replace( '/[^A-Za-z0-9_-]/', '', $tag ); return $tag; } ?>