$body = preg_replace_callback('#(\n|\r|\]|^|\s|\(|<)([a-zA-Z0-9]+?)://(([a-zA-Z0-9\.\-\_\?=\#/&]|&|%20|\+)+)(>|<|\n|\r|$|,(\s|$)|\?(\s|$)|\)|\[|\s|\.(\s|$))#i', function ($match) {
$body = preg_replace_callback('#(\n|\r|\]|^|\s|\(|<)([a-zA-Z0-9]+?)://(([a-zA-Z0-9\.\-\_\?=\#/\&/\%/\#/\!]|&|%20|\+)+)(>|<|\n|\r|$|,(\s|$)|\?(\s|$)|\)|\[|\s|\.(\s|$))#i', function ($match) {