From 4306de30e31874710996add9bda71d4dccd99596 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Thu, 19 Jun 2014 00:00:27 +0000 Subject: [PATCH] Move preg_match() that should only run once out of the loop. props dllh. fixes #28575. git-svn-id: https://develop.svn.wordpress.org/trunk@28776 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/formatting.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/formatting.php b/src/wp-includes/formatting.php index 5006bb183b..9a623896c8 100644 --- a/src/wp-includes/formatting.php +++ b/src/wp-includes/formatting.php @@ -214,6 +214,8 @@ function wptexturize($text, $reset = false) { $textarr = preg_split( $regex, $text, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY ); + $do_times_check = ( 1 === preg_match( '/(?<=\d)x-?\d/', $text ) ); + foreach ( $textarr as &$curl ) { // Only call _wptexturize_pushpop_element if $curl is a delimeter. $first = $curl[0]; @@ -242,7 +244,7 @@ function wptexturize($text, $reset = false) { $curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl); // 9x9 (times), but never 0x9999 - if ( 1 === preg_match( '/(?<=\d)x-?\d/', $text ) ) { + if ( $do_times_check ) { // Searching for a digit is 10 times more expensive than for the x, so we avoid doing this one! $curl = preg_replace( '/\b(\d(?(?<=0)[\d\.,]+|[\d\.,]*))x(-?\d[\d\.,]*)\b/', '$1×$2', $curl ); }