So yeah. After upgrading the server things run on here, I found that PHP is now crying about a function I use in my blog. Being the boob I apparently am, I have no idea how to fix the problem it's whining at me about (or was, until I slapped it silly so the blog would run).
Here's the problem:
preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
Here's the code this is currently complaining in:
private function pre_parse_links( $in )
{
$parse = array(
'matches' => array('~(^|\s)([a-z0-9-_.]+@[a-z0-9-.]+\.[a-z0-9-_.]+)~i',
'~(^|\s)(http|https|ftp)://(\w+[^\s\[\]]+)~ise'),
'replacements' => array('\\1[email=\\2]\\2[/email]',
'\'\\1[url=\\2://\\3]\\2://\\3[/url]\'')
);
return preg_replace($parse['matches'], $parse['replacements'], $in);
}
Apparently the "/e modifier" is some kind of default to preg_replace(). I have no idea how to turn this into something preg_replace_callback() will like because I have never really gotten the hang of how crazy stuff like callback functions work.
If anyone here happens to know how to fix this I'd be quite grateful for some help. I really don't want to have to wade into the hell that is most PHP support forums over what they're sure to tell me is something I should be able to figure out on my own.