Добавил новые теги!
[img]прямой_адрес_до_изображения[/img]
[size=размер_текста]текст[/size] - размер задается в пикселях от 4 до 48
Добавленный и обновленный код:
// код для тега SIZE и IMG
// добавляется в функцию tags()
$var = preg_replace_callback('#\[size=([0-9]{1,2})\](.*?)\[/size\]#si',
create_function(
'$data',
'if(intval($data[1])>48) {
$data[1] = 48;
} elseif (intval($data[1])<4) {
$data[1] = 4;
}
return "<span style=\"font-size:{$data[1]}px\">{$data[2]}</span>";
'
), $var);
// В уже знакомое выражение обработки URL встроена обработка IMG
$var = preg_replace_callback('`\\[url=((?:http|ftp)+s?://.+?)\\](.+?)\\[/url\\]|((?:http|ftp)+s?://(www.)?[0-9a-z\.-]+\.[0-9a-z]{2,6}[0-9a-zA-Z/\?\.\~&_=/%\-\+:#]*)|\[img\]((?:http|ftp)+s?://[a-zA-Z0-9\-\_\+\.\%\~\/]+?\.(?:jpeg|jpe|jpg|gif|png|tga|tif|tiff|bmp))\[/img\]`', 'url_replace', $var);
Теперь функции которые претерпели модификации
// В функцию w_gHide() была встроена проверка изображения на валидность
function w_gHide($gh){
// gHide valid finction by SunRise
// Допольнительно в функцию добавлена обработка тэга IMG от SunRise
// Данной функцией обрабатывать ВХОДЯЩИЕ данные
global $user_id, $rights;
// Обработчик тэга IMG
if(preg_match('#\[img\](.*?)\[\/img\]#si', $gh))
{
if(preg_match('#\[img\]((?:http|ftp)+s?://[a-zA-Z0-9\-\_\+\.\%\~\/]+?\.(?:jpeg|jpe|jpg|gif|png|tga|tif|tiff|bmp))\[\/img\]#si', $gh))
{
return preg_replace_callback('#\[img\]((?:http|ftp)+s?://[a-zA-Z0-9\-\_\+\.\%\~\/]+?\.(?:jpeg|jpe|jpg|gif|png|tga|tif|tiff|bmp))\[\/img\]#si',
create_function(
'$data',
'$img = @getimagesize($data[1]);
if(!empty($img) && is_array($img) && in_array($img[\'mime\'], array(\'image/gif\', \'image/jpeg\', \'image/png\', \'image/tga\', \'image/bmp\', \'image/tiff\')) && $img[0] > 10 && $img[1] > 10)
{
return \'[img]\' . $data[1] . \'[/img]\';
}
else
{
return \'[Неверное изображение в тэге!!!]\';
}'
), $gh);
}
else
{
return preg_replace('#\[img\](.*?)\[\/img\]#si', '[Неверный формат адреса в тэге!!!]', $gh);
}
}
// *******************
if(preg_match('#\[ghide=(.*?)\](.*?)\[\/ghide\]#si',$gh))
{
if($rights>=2)
{
return $gh;
}
else
{
return '[Не хулигань!]';
}
}
elseif(preg_match('#\[ghide\](.*?)\[\/ghide\]#si',$gh))
{
return preg_replace('#\[ghide\](.*?)\[\/ghide\]#si', '[ghide=' . $user_id . ']\1[/ghide]', $gh);
}
else
{
return $gh;
}
}
// В функцию парсинга было встроено выражение вывода IMG
function url_replace($m) {
// Служебная функция парсинга URL (прислал FlySelf)
// Втсавка кода обработки тега IMG от SunRise
if(isset($m[5]))
{
$matches = array('%3C','%3E','%26','%26','%22','%3A','%28','%29');// отчистка от символов < > & ' " : ( ) в URL формате
$m[5] = str_replace($matches, '', $m[5]);
return '<img src="'.$m[5].'" alt="'.$m[5].'" stryle="border:0" />';
}
else
{
if (!isset($m[3]))
{
return '<a href="' . $_SERVER['DOCUMET_ROOT'] . '/ol.php?ol=' . urlencode(base64_encode($m[1])) . '">' . $m[2] . '</a>';
}
else
{
$lText = '';
if(mb_strlen($m[3])>70) $lText = mb_substr($m[3],0,70) . '...'; else $lText = $m[3];
return '<a href="' . $_SERVER['DOCUMET_ROOT'] . '/ol.php?ol=' . urlencode(base64_encode($m[3])) . '">' . $lText . '</a>';
}
}
}
В прошлых версиях был забыт(обделен) модератор чата. Он не видел содержимое тега ghide (так как чатом я не пользуюсь), теперь он добавлен в список видящих.
Прикрепленный архив содержит файл func.php, которого и коснулись все изменения.