накладка 2х функций
1.
ensteyn-asen (19.12.2011 / 01:05)
есть 2 функции:
1я - обрабатывает ссылки в тексте, чтоб они были кликабельны
2я - обрабатывает изображение, чтоб оно отображалось в сообщении
а вот и они
обработка ссылок
function url_replace($url) {
if(empty($url[3]) )
{
return '<a href="' . $url[1] . '">' . $url[2] . '</a>';
}
else
{
return '<a href="' . $url[3] . '">' . $url[3] . '</a>';
}
unset($url);
}
2.
ensteyn-asen (19.12.2011 / 01:05)
обработка изображений
function img_replaces($img) {
$size = getimagesize($img[1]);
if (in_array(strtolower(substr($img[1] , 1 + strrpos($img[1] , '.'))) , array('gif', 'jpg', 'png', 'jpeg', 'bmp')))
{
$ratio = ($size[1] < 100 && $size[0] > 300) ? $size[0]/350 : $size[0]/150;
echo '<center><hr size="3" color="darkgray" noshade><a href="' . $img[1] . '"><img src="' . $img[1] . '" width="'.ceil($size[0]/$ratio).'" height="'.ceil($size[1]/$ratio).'" alt="' . $img[2] . '"></a><br><a href="' . $img[1] . '">Скачать</a> ['.$size[0].'x'.$size[1].']</a></center>';
}
else
{
echo '<center><hr><img src="../images/system/noimg.jpg" alt="Нет изображения"><br>' . $img[1] . '<br></center>';
}
unset($img , $size , $ratio);
}
ссылка обрабатывается в виде обычной ссылки в тексте и в виде ББ-кода [url=http://]NAME[/url]
изображение обрабатывается в виде ББ-кода [img=http://]NAME[/img]
ссылки и изображения ищутся регулярными выражениями
сообщение обрабатывается этой функцией на выводе на экран
function come_text($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() и вывод изображения становится невозможным
помогите решить это проблему
3.
ensteyn-asen (19.12.2011 / 02:32)
неужели никто не знает ?
4.
ensteyn-asen (21.12.2011 / 02:42)
все еще актуально
URL:
https://visavi.net/topics/27562