Use preg_replace_callback instead of preg_replace with eval. Props beaulebens. see #8689
git-svn-id: http://svn.automattic.com/wordpress/trunk@10339 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
3cc307471c
commit
0858d9b0c2
|
@ -550,7 +550,7 @@ class Blogger_Import {
|
||||||
$post_status = isset( $entry->draft ) ? 'draft' : 'publish';
|
$post_status = isset( $entry->draft ) ? 'draft' : 'publish';
|
||||||
|
|
||||||
// Clean up content
|
// Clean up content
|
||||||
$post_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $post_content);
|
$post_content = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $post_content);
|
||||||
$post_content = str_replace('<br>', '<br />', $post_content);
|
$post_content = str_replace('<br>', '<br />', $post_content);
|
||||||
$post_content = str_replace('<hr>', '<hr />', $post_content);
|
$post_content = str_replace('<hr>', '<hr />', $post_content);
|
||||||
|
|
||||||
|
@ -603,7 +603,7 @@ class Blogger_Import {
|
||||||
$comment_content = addslashes( $this->no_apos( html_entity_decode( $entry->content ) ) );
|
$comment_content = addslashes( $this->no_apos( html_entity_decode( $entry->content ) ) );
|
||||||
|
|
||||||
// Clean up content
|
// Clean up content
|
||||||
$comment_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $comment_content);
|
$comment_content = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $comment_content);
|
||||||
$comment_content = str_replace('<br>', '<br />', $comment_content);
|
$comment_content = str_replace('<br>', '<br />', $comment_content);
|
||||||
$comment_content = str_replace('<hr>', '<hr />', $comment_content);
|
$comment_content = str_replace('<hr>', '<hr />', $comment_content);
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,7 @@ class BW_Import {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clean up content
|
// Clean up content
|
||||||
$post_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $post_content);
|
$post_content = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $post_content);
|
||||||
$post_content = str_replace('<br>', '<br />', $post_content);
|
$post_content = str_replace('<br>', '<br />', $post_content);
|
||||||
$post_content = str_replace('<hr>', '<hr />', $post_content);
|
$post_content = str_replace('<hr>', '<hr />', $post_content);
|
||||||
$post_content = $wpdb->escape($post_content);
|
$post_content = $wpdb->escape($post_content);
|
||||||
|
@ -129,7 +129,7 @@ class BW_Import {
|
||||||
$comment_content = $this->unhtmlentities($comment_content);
|
$comment_content = $this->unhtmlentities($comment_content);
|
||||||
|
|
||||||
// Clean up content
|
// Clean up content
|
||||||
$comment_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $comment_content);
|
$comment_content = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $comment_content);
|
||||||
$comment_content = str_replace('<br>', '<br />', $comment_content);
|
$comment_content = str_replace('<br>', '<br />', $comment_content);
|
||||||
$comment_content = str_replace('<hr>', '<hr />', $comment_content);
|
$comment_content = str_replace('<hr>', '<hr />', $comment_content);
|
||||||
$comment_content = $wpdb->escape($comment_content);
|
$comment_content = $wpdb->escape($comment_content);
|
||||||
|
|
|
@ -71,7 +71,7 @@ class LJ_Import {
|
||||||
$post_content = $this->unhtmlentities($post_content);
|
$post_content = $this->unhtmlentities($post_content);
|
||||||
|
|
||||||
// Clean up content
|
// Clean up content
|
||||||
$post_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $post_content);
|
$post_content = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $post_content);
|
||||||
$post_content = str_replace('<br>', '<br />', $post_content);
|
$post_content = str_replace('<br>', '<br />', $post_content);
|
||||||
$post_content = str_replace('<hr>', '<hr />', $post_content);
|
$post_content = str_replace('<hr>', '<hr />', $post_content);
|
||||||
$post_content = $wpdb->escape($post_content);
|
$post_content = $wpdb->escape($post_content);
|
||||||
|
@ -107,7 +107,7 @@ class LJ_Import {
|
||||||
$comment_content = $this->unhtmlentities($comment_content);
|
$comment_content = $this->unhtmlentities($comment_content);
|
||||||
|
|
||||||
// Clean up content
|
// Clean up content
|
||||||
$comment_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $comment_content);
|
$comment_content = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $comment_content);
|
||||||
$comment_content = str_replace('<br>', '<br />', $comment_content);
|
$comment_content = str_replace('<br>', '<br />', $comment_content);
|
||||||
$comment_content = str_replace('<hr>', '<hr />', $comment_content);
|
$comment_content = str_replace('<hr>', '<hr />', $comment_content);
|
||||||
$comment_content = $wpdb->escape($comment_content);
|
$comment_content = $wpdb->escape($comment_content);
|
||||||
|
|
|
@ -103,7 +103,7 @@ class RSS_Import {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clean up content
|
// Clean up content
|
||||||
$post_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $post_content);
|
$post_content = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $post_content);
|
||||||
$post_content = str_replace('<br>', '<br />', $post_content);
|
$post_content = str_replace('<br>', '<br />', $post_content);
|
||||||
$post_content = str_replace('<hr>', '<hr />', $post_content);
|
$post_content = str_replace('<hr>', '<hr />', $post_content);
|
||||||
|
|
||||||
|
|
|
@ -381,12 +381,12 @@ class WP_Import {
|
||||||
$post_author = $this->get_tag( $post, 'dc:creator' );
|
$post_author = $this->get_tag( $post, 'dc:creator' );
|
||||||
|
|
||||||
$post_excerpt = $this->get_tag( $post, 'excerpt:encoded' );
|
$post_excerpt = $this->get_tag( $post, 'excerpt:encoded' );
|
||||||
$post_excerpt = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $post_excerpt);
|
$post_excerpt = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $post_excerpt);
|
||||||
$post_excerpt = str_replace('<br>', '<br />', $post_excerpt);
|
$post_excerpt = str_replace('<br>', '<br />', $post_excerpt);
|
||||||
$post_excerpt = str_replace('<hr>', '<hr />', $post_excerpt);
|
$post_excerpt = str_replace('<hr>', '<hr />', $post_excerpt);
|
||||||
|
|
||||||
$post_content = $this->get_tag( $post, 'content:encoded' );
|
$post_content = $this->get_tag( $post, 'content:encoded' );
|
||||||
$post_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $post_content);
|
$post_content = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $post_content);
|
||||||
$post_content = str_replace('<br>', '<br />', $post_content);
|
$post_content = str_replace('<br>', '<br />', $post_content);
|
||||||
$post_content = str_replace('<hr>', '<hr />', $post_content);
|
$post_content = str_replace('<hr>', '<hr />', $post_content);
|
||||||
|
|
||||||
|
|
|
@ -1317,8 +1317,7 @@ function wp_iso_descrambler($string) {
|
||||||
return $string;
|
return $string;
|
||||||
} else {
|
} else {
|
||||||
$subject = str_replace('_', ' ', $matches[2]);
|
$subject = str_replace('_', ' ', $matches[2]);
|
||||||
/** @todo use preg_replace_callback() */
|
$subject = preg_replace_callback('#\=([0-9a-f]{2})#i', create_function('$match', 'return chr(hexdec(strtolower($match[1])));'), $subject);
|
||||||
$subject = preg_replace('#\=([0-9a-f]{2})#ei', "chr(hexdec(strtolower('$1')))", $subject);
|
|
||||||
return $subject;
|
return $subject;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -394,8 +394,11 @@ function wp_kses_version() {
|
||||||
* @return string Content with fixed HTML tags
|
* @return string Content with fixed HTML tags
|
||||||
*/
|
*/
|
||||||
function wp_kses_split($string, $allowed_html, $allowed_protocols) {
|
function wp_kses_split($string, $allowed_html, $allowed_protocols) {
|
||||||
return preg_replace('%((<!--.*?(-->|$))|(<[^>]*(>|$)|>))%e',
|
global $pass_allowed_html, $pass_allowed_protocols;
|
||||||
"wp_kses_split2('\\1', \$allowed_html, ".'$allowed_protocols)', $string);
|
$pass_allowed_html = $allowed_html;
|
||||||
|
$pass_allowed_protocols = $allowed_protocols;
|
||||||
|
return preg_replace_callback('%((<!--.*?(-->|$))|(<[^>]*(>|$)|>))%',
|
||||||
|
create_function('$match', 'global $pass_allowed_html, $pass_allowed_protocols; return wp_kses_split2($match[1], $pass_allowed_html, $pass_allowed_protocols);'), $string);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -999,8 +1002,8 @@ function valid_unicode($i) {
|
||||||
* @return string Content after decoded entities
|
* @return string Content after decoded entities
|
||||||
*/
|
*/
|
||||||
function wp_kses_decode_entities($string) {
|
function wp_kses_decode_entities($string) {
|
||||||
$string = preg_replace('/&#([0-9]+);/e', 'chr("\\1")', $string);
|
$string = preg_replace_callback('/&#([0-9]+);/', create_function('$match', 'return chr($match[1]);'), $string);
|
||||||
$string = preg_replace('/&#[Xx]([0-9A-Fa-f]+);/e', 'chr(hexdec("\\1"))', $string);
|
$string = preg_replace_callback('/&#[Xx]([0-9A-Fa-f]+);/', create_function('$match', 'return chr(hexdec($match[1]));'), $string);
|
||||||
|
|
||||||
return $string;
|
return $string;
|
||||||
}
|
}
|
||||||
|
|
|
@ -223,7 +223,7 @@ function get_the_content($more_link_text = null, $stripteaser = 0, $more_file =
|
||||||
|
|
||||||
}
|
}
|
||||||
if ( $preview ) // preview fix for javascript bug with foreign languages
|
if ( $preview ) // preview fix for javascript bug with foreign languages
|
||||||
$output = preg_replace('/\%u([0-9A-F]{4,4})/e', "'&#'.base_convert('\\1',16,10).';'", $output);
|
$output = preg_replace_callback('/\%u([0-9A-F]{4})/', create_function('$match', 'return "&#" . base_convert($match[1], 16, 10) . ";";'), $output);
|
||||||
|
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue