[wp-trac] Re: [WordPress Trac] #8553: preg_replace_callback in do_shortcode returns empty for large posts

WordPress Trac wp-trac at lists.automattic.com
Tue Jun 16 23:08:40 GMT 2009


#8553: preg_replace_callback in do_shortcode returns empty for large posts
---------------------------+------------------------------------------------
 Reporter:  AaronCampbell  |        Type:  defect (bug)
   Status:  new            |    Priority:  high        
Milestone:  2.9            |   Component:  Shortcodes  
  Version:                 |    Severity:  normal      
 Keywords:  needs-patch    |  
---------------------------+------------------------------------------------
Changes (by Brusdeylins):

 * cc: Brusdeylins (added)
  * priority:  normal => high


Comment:

 Hi,

 the resolution is descibed on my website (in german):
 http://www.brusdeylins.info/wordpress/probleme-mit-shortcodes/

 The problem is in shortcodes.php in the function get_shortcode_regex().
 Here the RegEx has a non-greedy part between the brackets, which should
 exclude the closing bracket. This would reduce the memory usage of the
 backtracking process in the RegEx-Engine (the reason of this problem).

 My solution for the last line of this function looks like this (WordPress
 2.8):
 return '(.?)\[('.$tagregexp.')\b([^\]]*?)(\/)?\](?:(.+?)\[\/\2\])?(.?)';

 Here I also removed the non-catching brackets around the catching brackets
 around the slash after the non-greedy area... Don't know why these are
 existed...

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/8553#comment:32>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list