ссылка обрабатывается в виде обычной ссылки в тексте и в виде ББ-кода [url=http://]NAME[/url]
изображение обрабатывается в виде ББ-кода [img=http://]NAME[/img]
ссылки и изображения ищутся регулярными выражениями
сообщение обрабатывается этой функцией на выводе на экран
function bb_code($message){
$message = preg_replace_callback('~\\[img=(http://.+?)\\](.+?)\\[/img\\]~', 'img_replaces', $message);
$message = preg_replace_callback('~\\[img\\](http://.+?)\\](.+?)\\[/img\\]~', 'img_replaces', $message);
$message = preg_replace_callback('~\\[url=(http://.+?)\\](.+?)\\[/url\\]|(http://(www.)?[0-9a-z\.-]+\.[0-9a-z]{2,6}[0-9a-zA-Z/\?\.\~&_=/%-:#]*)~', 'url_replace', $message);
$message = preg_replace_callback('~\\[url=(https://.+?)\\](.+?)\\[/url\\]|(https://(www.)?[0-9a-z\.-]+\.[0-9a-z]{2,6}[0-9a-zA-Z/\?\.\~&_=/%-:#]*)~', 'url_replace', $message);
return $message;
}
если изображение выводится на екран через ECHO ''; то все хорошо (но мне это плохо, ибо json не понимает echo ) то все выводится хорошо (кроме тех мест где вывод через json)
а если сделать вывод изображения через return , то ссылка на изображение будет обрабатываться функцией url_replace() и вывод изображения становится невозможным
помогите решить это проблему